From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/ijmart/Makefile | 62 + macros/latex/contrib/ijmart/README | 33 + macros/latex/contrib/ijmart/ijmart.bib | 137 ++ macros/latex/contrib/ijmart/ijmart.bst | 1226 +++++++++++++++ macros/latex/contrib/ijmart/ijmart.dtx | 1709 +++++++++++++++++++++ macros/latex/contrib/ijmart/ijmart.ins | 29 + macros/latex/contrib/ijmart/ijmart.pdf | Bin 0 -> 386604 bytes macros/latex/contrib/ijmart/ijmsample.bib | 169 +++ macros/latex/contrib/ijmart/ijmsample.pdf | Bin 0 -> 539601 bytes macros/latex/contrib/ijmart/ijmsample.tex | 2308 +++++++++++++++++++++++++++++ 10 files changed, 5673 insertions(+) create mode 100644 macros/latex/contrib/ijmart/Makefile create mode 100644 macros/latex/contrib/ijmart/README create mode 100644 macros/latex/contrib/ijmart/ijmart.bib create mode 100644 macros/latex/contrib/ijmart/ijmart.bst create mode 100644 macros/latex/contrib/ijmart/ijmart.dtx create mode 100644 macros/latex/contrib/ijmart/ijmart.ins create mode 100644 macros/latex/contrib/ijmart/ijmart.pdf create mode 100644 macros/latex/contrib/ijmart/ijmsample.bib create mode 100644 macros/latex/contrib/ijmart/ijmsample.pdf create mode 100644 macros/latex/contrib/ijmart/ijmsample.tex (limited to 'macros/latex/contrib/ijmart') diff --git a/macros/latex/contrib/ijmart/Makefile b/macros/latex/contrib/ijmart/Makefile new file mode 100644 index 0000000000..322c5b4611 --- /dev/null +++ b/macros/latex/contrib/ijmart/Makefile @@ -0,0 +1,62 @@ +# +# Makefile for ijmart package +# +# This file is in public domain +# +# $Id: Makefile,v 1.4 2007-08-21 02:04:10 boris Exp $ +# + +PACKAGE=ijmart + +SAMPLES = \ + ijmsample.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 + + + +.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) + +# +# 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/macros/latex/contrib/ijmart/README b/macros/latex/contrib/ijmart/README new file mode 100644 index 0000000000..9f47dab6ce --- /dev/null +++ b/macros/latex/contrib/ijmart/README @@ -0,0 +1,33 @@ + IJMART: LATEX CLASS FOR THE ISRAEL JOURNAL OF MATHEMATICS + +The Israel Journal of Mathematics is published by The Hebrew +University Magnes Press. This class provides LaTeX support for its +authors and editors. It strives to achieve the distinct ``look and +feel'' of the journal, while having the interface similar to the one +of the amsart document class. This will help the authors already +familiar with amsart to easily submit manuscripts for The Israel +Journal of Mathematics or to put the preprints in http://www.arxiv.org +with minimal changes in the LaTeX source. + +Changes: + +Version 1.1: Added environments namedprop and namedprop* for special + named propositions. + +Version 1.1a: Minor documentation updates. + +Version 1.2: New table of contents formatting. + +Version 1.3: Changed the typesetting of proofs that end by a math + display. This involves interface changes. + Changed table of contents formatting (again). + +Version 1.4: Fixed the bug inherited from amsart: now appendices + do not cause large indentations in table of contents + +Version 1.5: Added compatibility with babel + +Version 1.6: Bibliography style now understands fjournal field. + Documentation update + +Version 1.7: Changes in sample file \ No newline at end of file diff --git a/macros/latex/contrib/ijmart/ijmart.bib b/macros/latex/contrib/ijmart/ijmart.bib new file mode 100644 index 0000000000..9d24a24294 --- /dev/null +++ b/macros/latex/contrib/ijmart/ijmart.bib @@ -0,0 +1,137 @@ +,-------------------. +| BIBTEX ENTRIES | +`-------------------' + +@manual{Downes04:amsart, + author = {Michael Downes and Barbara Beeton}, + month = {August}, + note = + {\url{http://www.ctan.org/tex-archive/macros/latex/required/amslatex/classes% +}}, + organization = {American Mathematical Society}, + title = {The \textsf{amsart}, \textsf{amsproc}, and + \textsf{amsbook} document~classes}, + year = {2004}, +} + +@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 = {2006}, +} + +@manual{Oberdiek06:Ifpdf, + author = {Heiko Oberdiek}, + month = {February}, + note = + {\url{http://ctan.tug.org/tex-archive/macros/latex/contrib/oberdiek}}, + title = {The \textsf{ifpdf} Package}, + year = {2006}, +} + +@manual{Oostrum04:Fancyhdr, + author = {van Oostrum, Piet}, + month = {March}, + note = + {\url{http://ctan.tug.org/tex-archive/macros/latex/contrib/fancyhdr}}, + title = {Page Layout in \LaTeX}, + year = {2004}, +} + +@manual{Goldberg94:Lastpage, + author = {Jeff Goldberg}, + month = {July}, + note = + {\url{http://www.ctan.org/tex-archive/macros/latex/contrib/lastpage}}, + title = {The \textsf{lastpage} Package}, + year = {1994}, +} + +@manual{amsldoc, + month = {February}, + note = + {\url{http://ctan.tug.org/tex-archive/macros/latex/required/amslatex/math/am% +sldoc.pdf}}, + organization = {American Mathematical Society}, + title = {User's Guide for the \textsf{amsmath} Package + (Version~2.0)}, + year = {2002}, +} + +@manual{Braams05:Babel, + author = {Johannes Braams}, + month = {April}, + note = + {\url{http://www.ctan.org/tex-archive/macros/latex/required/babel}}, + title = {Babel, a Multilingual Package For Use With {\LaTeX}'s + Standard Document Classes}, + year = {2005}, +} + +@manual{instr-l, + month = {August}, + note = + {\url{http://www.ctan.org/tex-archive/macros/latex/required/amslatex/classes% +/instr-l.pdf}}, + organization = {American Mathematical Society}, + title = {Instructions for Preparation of Papers and + Monographs, {AMS\LaTeX}}, + 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}, +} + +@manual{Wilson04:Memoir, + author = {Peter Wilson}, + month = {January}, + note = + {\url{http://ctan.tug.org/tex-archive/macros/latex/contrib/memoir}}, + title = {The Memoir Class for Configurable Typesetting}, + year = {2004}, +} + +@manual{classes, + author = {Leslie Lamport and Frank Mittelbach and + Johannes Braams}, + note = + {\url{http://ctan.tug.org/tex-archive/macros/latex/base}}, + title = {Standard Document Classes for {\LaTeX{}} version 2e}, + year = {1997}, +} + +@Manual{Carlisle95:indentfirst, + title = {The \textsf{indentfirst} package}, + author = {David Carlisle}, + month = {November}, + year = 1995, + note = {\url{http://www.ctan.org/tex-archive/macros/latex/required/tools/indentfirst.pdf}} +} + +@Manual{amsthdoc, + title = {Using the \texttt{amsthm} Package}, + organization = {American Mathematical Society}, + month = {August}, + year = 2004, + note = {\url{http://www.ctan.org/tex-archive/macros/latex/required/amslatex/classes/amsthdoc.pdf}} +} diff --git a/macros/latex/contrib/ijmart/ijmart.bst b/macros/latex/contrib/ijmart/ijmart.bst new file mode 100644 index 0000000000..d307da3361 --- /dev/null +++ b/macros/latex/contrib/ijmart/ijmart.bst @@ -0,0 +1,1226 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% filename = "ijmart.bst", +%%% copyright = "Copyright 1995 American Mathematical Society, +%%% 2005 The Hebrew University Magnes Press (changes) +%%% 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.", +%%% abstract = "BibTeX bibliography style `ijmart' for BibTeX +%%% versions 0.99a or later and LaTeX version 2e. +%%% Produces numeric-label bibliography items in +%%% a form typical for the Israel journal of +%%% Mathematics. The style is based on amsplain.bst +%%% +%%% } +%%% ==================================================================== + +% See the file btxbst.doc for extra documentation other than +% what is included here. And see btxhak.tex for a description +% of the BibTeX language and how to use it. + +% This defines the types of fields that can occur in a database entry +% for this particular bibliography style. Except for `language', +% this is the standard list from plain.bst. + +%% Types of entries currently allowed in a BibTeX file: +%% +%% ARTICLE -- An article from a journal or magazine. +%% +%% BOOK -- A book with an explicit publisher. +%% +%% BOOKLET -- A work that is printed and bound, +%% but without a named publisher or sponsoring institution. +%% +%% CONFERENCE -- The same as INPROCEEDINGS, +%% included for Scribe compatibility. +%% +%% INBOOK -- A part of a book, +%% which may be a chapter (or section or whatever) and/or a range of pages. +%% +%% INCOLLECTION -- A part of a book having its own title. +%% +%% INPROCEEDINGS -- An article in a conference proceedings. +%% +%% MANUAL -- Technical documentation. +%% +%% MASTERSTHESIS -- A Master's thesis. +%% +%% MISC -- Use this type when nothing else fits. +%% +%% PHDTHESIS -- A PhD thesis. +%% +%% PROCEEDINGS -- The proceedings of a conference. +%% +%% TECHREPORT -- A report published by a school or other institution, +%% usually numbered within a series. +%% +%% UNPUBLISHED -- A document having an author and title, but not formally +%% published. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + fjournal + key + language + month + mrnumber + note + number + organization + pages + publisher + school + series + title + type + volume + year + } +{} + { label } + + +% Removed after.sentence, after.block---not needed. + +INTEGERS { output.state before.all mid.sentence } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := +} + +% Scratch variables: + +STRINGS { s t } + +% Utility functions + +FUNCTION {shows} +{ duplicate$ ":::: `" swap$ * "'" * top$ +} + +FUNCTION {showstack} +{"STACK=====================================================================" +top$ +stack$ +"ENDSTACK==================================================================" +top$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textsl{" 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 {fin.entry} +{ add.period$ + write$ + mrnumber output.nonempty.mrnumber + newline$ +} + +% Removed new.block, new.block.checka, new.block.checkb, new.sentence, +% new.sentence.checka, and new.sentence.checkb functions here, since they +% don't seem to be needed in the AMS style. Also moved some real +% basic functions like `and' and 'or' earlier in the file. + +INTEGERS { nameptr namesleft numnames } + +% The extra section to write out a language field was added +% for AMSPLAIN.BST. Not present in plain.bst. + +FUNCTION {format.language} +{ language empty$ + { "" } + { " (" language * ")" * } + if$ +} + +% This version of format.names puts names in the format +% +% First von Last, Jr. +% +% (i.e., first name first, no abbreviating to initials). +% +% Changed by BV, 2008/01/20: no comma before "and" + + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #3 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.nonauthor.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {format.journal.vol.year} +{ fjournal empty$ + { journal empty$ + { "journal name" missing.warning ""} + { journal } + if$ } + { fjournal } + if$ + volume empty$ + 'skip$ + { " \textbf{" * volume * "}" * } + if$ + year empty$ + { "year" missing.warning } + { " (" * year * ")" * } + if$ +} + +% For formatting the issue number for a journal article. + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + +% For formatting miscellaneous dates + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +%% The volume, series and number information is sort of tricky. +%% This code handles it as follows: +%% If the series is present, and the volume, but not the number, +%% then we do "\emph{Book title}, Series Name, vol. 000" +%% If the series is present, and the number, but not the volume, +%% then we do "\emph{Book title}, Series Name, no. 000" +%% If the series is present, and both number and volume, +%% then we do "\emph{Book title}, vol. XX, Series Name, no. 000" +%% Finally, if the series is absent, +%% then we do "\emph{Book title}, vol. XX" +%% or "\emph{Book title}, no. 000" +%% and if both volume and number are present, give a warning message. + +FUNCTION {format.bookvolume.series.number} +{ volume empty$ + { "" % Push the empty string as a placeholder in case everything else + % is empty too. + series empty$ + 'skip$ + { pop$ series } % if series is not empty put in stack + if$ + number empty$ + 'skip$ + { duplicate$ empty$ % if no preceding material, + 'skip$ % do nothing, otherwise + { ", " * } % add a comma and space to separate. + if$ + "no." number tie.or.space.connect * % add the number information + } + if$ + } +%% If the volume is NOT EMPTY: + { "vol." volume tie.or.space.connect % vol. XX + number empty$ + { series empty$ + 'skip$ + { series ", " * swap$ *} % Series Name, vol. XX + if$ + } + { series empty$ + { "can't use both volume and number if series info is missing" + warning$ + "in BibTeX entry type `" type$ * "'" * top$ + } + { ", " * series * ", no." * number tie.or.space.connect } + if$ + } + if$ + } + if$ + +} % end of format.bookvolume.series.number + +%% format.inproc.title.where.editors is used by inproceedings entry types + +%% No case changing or emphasizing for the title. We want initial +%% caps, roman. +%% We add parentheses around the address (place where conference +%% was held). +%% Likewise we add parentheses around the editors' names. + +FUNCTION {format.inproc.title.address.editors} +{ booktitle empty$ + { "" } + { booktitle + address empty$ + 'skip$ + { add.space.if.necessary "(" * address * ")" * } + 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$ + { booktitle } + { 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.number 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.title "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished output + address output + format.date output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.title "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.address.editors "booktitle" output.check + format.bookvolume.series.number output + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.title "title" output.check + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + format.edition output + format.date output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + 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.title "title" output.check + "Ph.D. thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.title "title" output.check + format.bookvolume.series.number output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + if$ + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label prev.author this.author } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := + "abcxyz" 'prev.author := + "" 'this.author := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + author empty$ + { editor empty$ + { "" } + 'editor + if$ + } + 'author + if$ + 'this.author := +} + +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{\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/macros/latex/contrib/ijmart/ijmart.dtx b/macros/latex/contrib/ijmart/ijmart.dtx new file mode 100644 index 0000000000..ee11d20483 --- /dev/null +++ b/macros/latex/contrib/ijmart/ijmart.dtx @@ -0,0 +1,1709 @@ +% \iffalse +% $Id: ijmart.dtx,v 1.52 2013-06-25 03:33:52 boris Exp $ +% +% Copyright 2007-2010, The Hebrew University Magnes Press +% 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 ijmart.dtx and the +% derived file ijmart.cls +% +% \fi +% \CheckSum{861} +% +% +%% \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{ijmart.dtx} +% \newcommand{\progname}[1]{\textsf{#1}} +% \title{\LaTeX{} Class for \emph{The Israel Journal of Mathematics}\thanks{\copyright 2007, The Hebrew University Magnes Press}} +% \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 +% \emph{The Israel Journal of Mathematics} +% \end{abstract} +% \tableofcontents +% +% \clearpage +% +% \changes{v0.2}{2007/08/20}{First fully functional version} +% \changes{v0.3}{2007/08/23}{Documentation update} +% \changes{v1.0}{2007/09/03}{Documentation update} +% \changes{v1.1a}{2007/10/14}{Documentation update} +% \changes{v1.3}{2008/01/27}{Documented the use of qedhere and mqedhere} +% \changes{v1.6}{2010/10/28}{Documentation updates: illustrations and +% bibliography} +% \changes{v1.7}{2013/06/23}{Change in a sample file} +% +%\section{Introduction} +%\label{sec:intro} +% +% \emph{The Israel Journal of Mathematics} is published by \emph{The +% Hebrew University Magnes Press}. This class provides \LaTeX{} +% support for its authors and editors. It strives to achieve the +% distinct ``look and feel'' of the journal, while having the +% interface similar to the one of the \progname{amsart} document +% class~\cite{Downes04:amsart}. This will help the authors already +% familiar with \progname{amsart} to easily submit manuscripts for \emph{The +% Israel Journal of Mathematics} or to put the preprints in +% \url{http://www.arxiv.org} with minimal changes in the \LaTeX{} +% source. +% +% This goal determined the implementation approach. We load the +% \progname{amsart} class and redefine some of its internals on the fly. There +% are some additional commands added to support the features specific +% to the journal, but we aimed to keep their number minimal. +% +% 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 |ijmart.ins|. This will produce the file +% |ijmart.cls|. +% \item Put the files |ijmart.cls| and |ijmart.bst| to +% the places where \LaTeX{} and Bib\TeX{} 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 |ijmart.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 \progname{ifpdf} package~\cite{Oberdiek06:Ifpdf}, +% \item \progname{fancyhdr} package~\cite{Oostrum04:Fancyhdr}, +% \item \progname{lastpage} package~\cite{Goldberg94:Lastpage}. +% \end{enumerate} +% +% +%\subsection{Invocation} +%\label{sec:invocation} +% +% To use the class, put in the preamble of your document +% \begin{flushleft} +% |\documentclass[|\meta{options}|]{ijmart}| +% \end{flushleft} +% The class internally loads \progname{amsart}, so all facilities of +% \progname{amsart}~\cite{Graetzer00:MathIntoLaTeX, amsldoc} can be used in the +% source. +% +% +% \DescribeOption{french} +% Most of the options are just passed to +% \progname{amsart} (see~\cite{Graetzer00:MathIntoLaTeX, amsldoc} for their +% description). The class \progname{ijmart} adds one new option |french|. If +% it is chosen, some words in the top matter will be typeset in +% French. Note that this option does \emph{not} change the names of +% the table of contents and references. An author should also include +% a call, for example, to the Babel package~\cite{Braams05:Babel}, +% which takes care of these and other details of international +% typesetting. +% +% If the author indeed chooses \progname{babel}, then the option +% |french| is passed to the package. Therefore the following works: +% \begin{verbatim} +% \documentclass[french]{ijmart} +% \usepackage{babel} % the french option is passed to the package +% \end{verbatim} +% Please note that \progname{babel} scans the global options first, +% but the main language of the document must be the last one. +% Therefore if the paper is written in French, but uses English +% quotations, the proper way to call \progname{babel} is the following: +% \begin{verbatim} +% \documentclass[french]{ijmart} +% \usepackage[english,french]{babel} +% \end{verbatim} +% +% +% +% By default \progname{babel} redefines French captions for figures +% and tables to use \textsc{Fig.} and \textsc{Tab.} correspondingly. +% If this is not +% acceptable, the authors should add to the preamble \emph{after} the +% call to \progname{babel} the following: +% \begin{verbatim} +% \addto\captionsfrench{% +% \renewcommand{\figurename}{Figure}% +% \renewcommand{\tablename}{Table}}% +% \end{verbatim} +% +% \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]{ijmart} +% \usepackage[final]{graphics} +% \end{verbatim} +% or add in the beginning of the document +% \begin{verbatim} +% \overfullrule=5pt +% \end{verbatim} +% +% +% +% \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 |10pt| of +% \progname{amsart}). +% +% +% +% The journal uses a special paper size. If you process the +% manuscript with \progname{pdflatex} to produce PDF output, the paper +% dimensions will be automatically set up by the class. However, if +% you use \progname{latex} and \progname{dvips}, you need to tell +% \progname{dvips} what paper size to choose. One way to do this is +% to add to the \progname{dvips} options the following: +% \begin{verbatim} +% -T 5.964in,8.844in -O -0in,0.1in +% \end{verbatim} +% +% +%\subsection{Top Matter} +%\label{sec:top_matter} +% +% Top matter contains the information about the paper: authors, title, +% affiliations, etc. The interface for \progname{ijmart} top matter is very +% close to the one used by \progname{amsart}. We added a couple of commands to +% deal with the information specific to the \emph{The Israel Journal of +% Mathematics} and changed the behavior of several other commands to +% suit the style of the journal. These changes are documented below. +% +% 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. +% +% +%\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. Note that the titles are typeset in +% upper case, but you do not need to input them in capital letters: +% the class does the conversion automatically. +% +% 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. Unlike +% \progname{amsart}, \progname{ijmart} allows the command |\thanks| +% inside |\title| and |\author| commands. However, the footnote +% belongs to the title typeset in the top matter, not to the running +% head version. The optional argument in this case helps, as in the +% following example: +% \begin{verbatim} +% \title[Some properties of $\sigma$-algebras]{% +% Some properties of $\sigma$-algebras\thanks{% +% The work was supported by grant from NSF No.~123456789-MMMM}} +% \end{verbatim} +% The line breaks in the title, if neccessary, are introduced by the +% command |\linebreak| in the second (mandatory) argument of |\title|: +% \begin{verbatim} +% \title[Title with line breaks]{Title \linebreak with line breaks} +% \end{verbatim} +% +% +% +% +% \DescribeMacro{\author} \DescribeMacro{\address} +% \DescribeMacro{\curraddr} \DescribeMacro{\email} +% \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|. The lines in the address should be divided by |\\|. +% Like the newer versions of \progname{amsart}, \progname{ijmart} 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. Similarly to |\title|, the +% command |\author| allows the use of |\thanks|. Again, to show that +% the footnote does not belong to the running head, the optional +% argument is used. +% +% \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} +% As discussed above, the behavior of the |\thanks| command in +% \progname{ijmart} is different from the one in \progname{amsart}. +% This command is +% allowed within the scope of the top matter commands. If it is used +% in the scope of the main argument of the commands |\author| and +% |\title|, the optional argument should be used to correctly typeset +% the running heads. +% +% Sometimes it is necessary to have a |\thanks| footnote referring to +% more than one author. In this case the usual \LaTeX{} command +% |\footnotemark|\oarg{number} can help: +% \begin{verbatim} +% \author{A.~Uthor\thanks{The first and the third author were +% supported by NSA grant~123456789} +% \author{W.~Riter\thanks{The second author was supported by NSF +% grant~987654321} +% \author{C.~Orrespondent\footnotemark[1]} +% \address{Noname University\\ Nowhere, RI\\ USA} +% \email{author@nowhere.edu, writer@nowhere.edu and +% correspondent@nowhere.edu} +% \end{verbatim} +% +% The command |\title| might have no more than one |\thanks| command +% in its scope. +% +% \DescribeEnv{abstract} +% The abstract of the paper must be put between |\begin{abstract}| and +% |\end{abstract}|. Note that to change the abstract name to +% R\'esum\'e, the authors should use Babel. Similarly to \progname{amsart} +% class, abstract must precede |\maketitle|. +% +% \DescribeMacro{\maketitle} +% The macro |\maketitle| typesets the top matter. All top matter +% information should be specified before this command. +% +% \DescribeMacro{\tableofcontents} +% \changes{v1.2}{2007/11/14}{Added documentation for table of contents +% formatting} +% The authors are encouraged to include |\tableofcontents| for long +% papers. By default only the sections are included in the table. If +% the authors wish to have a more detailed table of contents, they +% could change the counter |tocdepth|, for example: +% \begin{verbatim} +% \setcounter{tocdepth}{1} % The default: only sections are included +% \setcounter{tocdepth}{2} % Sections and subsections +% \setcounter{tocdepth}{3} % Sections, subsections and subsubsections +% ... +% \end{verbatim} +% If |tocdepth| is greater than the default value of 1, the formatting +% of the table of contents changes: the section entries then are +% typeset bold. +% +% +%\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{\issueinfo} +% The command |\issueinfo| has the same format as in the \progname{amsart} +% document class: +% \begin{flushleft} +% |\issueinfo{|\meta{volume}|}{|\meta{number}|}{|\meta{month}|}{|\meta{year}|}| +% \end{flushleft} +% Note that at present the class uses only the first and the last +% arguments of this command (volume and year) for the actual typesetting. +% However, we keep the original format of this command, first, for +% compatibility reasons, and second, to facilitate a possible automatic +% processing of journal issues in the future. +% +% Example of this command: +% \begin{verbatim} +% \issueinfo{159}{1}{January}{2007} +% \end{verbatim} +% +% +% \DescribeMacro{\pagespan} +% The command |\pagespan| has two arguments, setting the first and the +% last page numbers of the article. If the last argument is empty, the last +% page number is calculated automatically. If the first argument is +% negative, the page numbering is done in Roman numerals, for example, +% for editorial materials. Here are examples of this command: +% \begin{verbatim} +% \pagespan{5}{15} % Explicit page span +% \pagespan{5}{} % The last page is calculated automatically +% \pagespan{-5}{} % Page numbers are Roman numerals v, vi, ... +% \pagespan{-5}{xx} % Page numbers are Roman numerals v, vi, ..., xx +% \end{verbatim} +% +% \DescribeMacro{\date} +% The command |\date| is used to put the editorial information +% about the manuscript, usually the date when the manuscript was +% received. For example: +% \begin{verbatim} +% \date{Received March 12, 2006 and in revised form December 6, 2006.} +% \end{verbatim} +% +% \DescribeMacro{\doiinfo} +% The command |\doiinfo| is used to specify the DOI number of the +% article, for example +% \begin{verbatim} +% \doiinfo{10.1007/s11856-007-0037-3} +% \end{verbatim} +% +% +% +%\subsection{Theorems, Lemmas, etc.} +% \label{sec:ijmthm_descr} +% +% \changes{v1.1}{2007/09/30}{Updated documentation for theorems} +% +% The class \progname{amsart} defines three theorem styles: |plain|, +% |remark| and |definition|. They are redefined by \progname{ijmart} +% to conform to the style of \emph{The Israel Jorunal of Mathematics.} +% Otherwise the usage of the theorem-like environments is the same as +% for \progname{amsart}. Note that \emph{The Israel Journal of +% Mathematics} usually recommends |definition| style for remarks, +% while |remark| style is used for steps, facts, cases, etc. +% +% \DescribeMacro{\qedhere} +% The environment |proof| has the same syntax and meaning as for +% \progname{amsart} package. According to the journal style, the QED +% symbol in proofs is not flushed left, like in \progname{amsart}, but +% is typeset at the last line of the proof at some distance from the +% text. If a proof ends by a nested environment, this might lead to +% an ugly position of the QED symbol. The command |\qedhere| inside a +% proof can be used to improve the situaiton\footnote{It is actually +% defined in \progname{amsart} too, but is not documented in the +% user's documentation there.}. It causes the immediate typesetting +% of the QED symbol and deletes the QED symbol at the end of the +% current proof. For example +% \begin{verbatim} +% \begin{proof} +% This proof ends by an enumerated list: +% \begin{enumerate} +% \item Item +% \item Item \qedhere +% \end{enumerate} +% \end{proof} +% \end{verbatim} +% Compare this to the similar code without |\qedhere|. +% +% The command |\qedhere| should be used if a proof ends by a math +% display: +% \begin{verbatim} +% \begin{proof} +% This proof ends by a displayed math: +% \begin{gather} +% a = b\\ +% c = d\qedhere +% \end{gather} +% \end{proof} +% \end{verbatim} +% \DescribeMacro{\mqedhere} +% The exception is the |multline| environment, where the special +% version |\mqedhere| should be used: +% \begin{verbatim} +% \begin{proof} +% This proof ends with a multline: +% \begin{multline} +% 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\mqedhere +% \end{multline} +% \end{proof} +% \end{verbatim} +% +% +% \DescribeEnv{namedprop} +% \DescribeEnv{namedprop*} +% Sometimes authors use non-standard names for their theorem-like +% propositions. The documentation~\cite{amsthdoc} recommends the use +% of |\newtheorem*|: +% \begin{verbatim} +% \newtheorem*{KL}{Klein's Lemma} +% \end{verbatim} +% However, if the number of such special environments is large enough, +% this might be too cumbersome. The package progname{ijmart} provides +% two environments, |namedprop| and |namedprop*| to define such +% these propositions on the fly. +% +% The environment |namedprop| is used for numbered named propositions +% (admittedly such propositions are less frequent than unnumbered +% ones). It has the following syntax: +% \begin{quote} +% |\begin{namedprop}|\marg{style}\marg{numbered-as}\marg{name}\oarg{note}\\ +% \dots\\ +% |\end{namedprop}| +% \end{quote} +% where |style| is the style of the proposition (|plain|, |remark|, +% etc.), |nmubered-as| is the name of (already defined) theorem-like +% environment, that shares the numbering with this proposition, |name| +% is the name to use instead of ``Theorem'', ``Lemma'', and |note| is +% the note after the heading. For example, +% \begin{verbatim} +% \begin{namedprop}{plain}{thm}{Klein's Lemma}[as restated in~\cite{a-l}] +% ... +% \end{namedprop} +% \end{verbatim} +% +% The nevironment |\namedprop*| is used for \emph{unnumbered} named +% propositions: +% \begin{quote} +% |\begin{namedprop*}|\marg{style}\marg{name}\oarg{note}\\ +% \dots\\ +% |\end{namedprop*}| +% \end{quote} +% For example, +% \begin{verbatim} +% \begin{namedprop*}{plain}{Klein's Lemma}[as restated in~\cite{a-l}] +% ... +% \end{namedprop*} +% \end{verbatim} +% +% +%\subsection{Bibliography} +%\label{sec:bilbio} +% +% The sample paper in the distribution shows the journal style for the +% list of references. For those authors who wish to use Bib\TeX, the +% style |ijmart.bst| is included in the distribution. It should be +% noted that the journal style requires full journal titles in +% references. Following MathSciNet +% (\url{http://www.ams.org/mathscinet/} conventions, the style +% correctly processes article entries with both |journal| and +% |fjournal| fields, for example +% \begin{verbatim} +% @article {MR2663320, +% AUTHOR = {Farkas, J. Z. and Green, D. M. and Hinow, P.}, +% TITLE = {Semigroup analysis of structured parasite populations}, +% JOURNAL = {Math. Model. Nat. Phenom.}, +% FJOURNAL = {Mathematical Modelling of Natural Phenomena}, +% VOLUME = {5}, +% YEAR = {2010}, +% NUMBER = {3}, +% PAGES = {94--114}, +% ISSN = {0973-5348}, +% MRCLASS = {92D25 (35B35 35Q92 47D06 47N60)}, +% MRNUMBER = {2663320}, +% DOI = {10.1051/mmnp/20105307}, +% URL = {http://dx.doi.org/10.1051/mmnp/20105307}, +% } +% \end{verbatim} +% If an entry has only the |journal| field, it is used for the journal +% title. However, if the entry has also the |fjournal| field, the +% style assumes that this field contains the full (unabbreviated) +% title, and uses it for formatting bibliography. +% +%\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). +% +% Note that the journal uses \progname{dvips} for internal processing. +% If the authors submit their illustrations in the PNG, JPEG of PDF +% formats, they are converted to the EPS format by the technical +% editors. Sometimes this conversion may lead to the loss of quality +% and resolution. Therefore the authors are advised to submit the +% illustrations in the EPS format. +% +% +% \StopEventually{% +% \clearpage +% \section{Acknowledgements} +% \label{sec:acks} +% +% I am grateful to the editorial staff of \emph{the Israel Journal of +% Mathematics} for the very careful copy editing of this manuscript +% and their patient explanations of the requirements of the journal. +% +% The Editors of the Journal and our Magnes colleagues wish to thank +% Professors Moshe Jarden and Gregory Cherlin for writing the original +% Journal package when the Journal came into the ownership of Magnes +% Press (in 1991). We would also like to thank Guy Jarden for his +% meticulous work, and for keeping the IJM package updated throughout +% the last 15 years. +% +% As a result of their efforts, the Journal was not only saved from +% extinction, but it has expanded and is considered a leader in its +% field. With the recent change in the production procedure to a more +% global format, we have moved to another program, building on the +% sturdy basis which they created. +% +% \bibliography{ijmart} +% \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{ijmart.dtx} +% +%\ProvidesClass{ijmart} +[2013/06/23 v1.7 Typesetting articles for The Israel Journal of Mathematics] +% \end{macrocode} +% +% \begin{macro}{\@classname} +% \changes{v0.3}{2007/08/24}{Introduced macro} +% We also store the current class name in |\@classname|: +% \begin{macrocode} +%\def\@classname{ijmart}% +% \end{macrocode} +% +% \end{macro} +% +% +% And the driver code: +% \begin{macrocode} +%<*gobble> +\documentclass{ltxdoc} +\usepackage{array} +\usepackage{url,amsfonts} +\usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black, + pagecolor=black,urlcolor=black,hyperindex=false]{hyperref} +\PageIndex +\CodelineIndex +\RecordChanges +\EnableCrossrefs +\begin{document} + \DocInput{ijmart.dtx} +\end{document} +% +%<*class> +% \end{macrocode} +% +% +%\subsection{Options} +%\label{sec:options} +% +% \begin{macro}{\ifijm@french} +% First, the language option. We do not know whether the author +% chooses to use \progname{babel}, so we define it in the way, which +% is compatible with \progname{babel}, but works without it too. +% \begin{macrocode} +\newif\ifijm@french +\ijm@frenchfalse +\DeclareOption{french}{\ijm@frenchtrue} +% \end{macrocode} +% \end{macro} +% +% The size-changing options produce a warning: +% \begin{macrocode} +\long\def\ijm@size@warning#1{% + \ClassWarning{\@classname}{Size-changing option #1 will not be + honored}}% +\DeclareOption{8pt}{\ijm@size@warning{\CurrentOption}}% +\DeclareOption{9pt}{\ijm@size@warning{\CurrentOption}}% +\DeclareOption{10pt}{\ijm@size@warning{\CurrentOption}}% +\DeclareOption{11pt}{\ijm@size@warning{\CurrentOption}}% +\DeclareOption{12pt}{\ijm@size@warning{\CurrentOption}}% +% \end{macrocode} +% +% +% +% 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{ijmart.cfg}{% + \ClassInfo{ijmart}{% + Loading configuration file ijmart.cfg}}{% + \ClassInfo{ijmart}{% + Configuration file ijmart.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} +\PassOptionsToClass{10pt}{amsart} +\LoadClass{amsart} +% \end{macrocode} +% +% A bunch of packages: +% \begin{macrocode} +\RequirePackage{ifpdf, fancyhdr, lastpage} +% \end{macrocode} +% +%\subsection{Fonts} +%\label{sec:fonts} +% +% The \progname{amsart} class defines several options for different +% font sizes (10pt, 11pt, etc). We have just one design size for the +% articles corresponding to the 10pt option of \progname{amsart}, but +% with larger |\baselineskip|. +% +% \begin{macro}{\@typesizes} +% \changes{v0.3}{2007/08/23}{Redefined \progname{amsart} defaults} +% 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{5}{7}\or{6}{8}\or{7}{9}\or{8}{11.2}\or{9}{12.6}% + \or{10}{14}% normalsize + \or{\@xipt}{15}\or{\@xiipt}{16.8}\or{\@xivpt}{19.8}% + \or{\@xviipt}{23.3}\or{\@xxpt}{28}}% +\normalsize \linespacing=\baselineskip +% \end{macrocode} +% \end{macro} +% +% +% +%\subsection{Page Dimensions and Paragraphing} +%\label{sec:page} +% +% \begin{macro}{\paperheight} +% \begin{macro}{\paperwidth} +% The journal has rather narrow pages: +% \begin{macrocode} +\setlength{\paperheight}{636.77bp} +\setlength{\paperwidth}{429.41bp} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\pdfpaperheight} +% \begin{macro}{\pdfpaperwidth} +% \begin{macro}{\pdfvorigin} +% \begin{macro}{\pdfhorigin} +% \changes{v0.3}{2007/08/23}{Changed offsets} +% \changes{v0.4}{2007/09/02}{Changed offsets} +% If we deal with \progname{pdftex}, we can use this information more +% creatively. This was inspired by +% \progname{memoir}~\cite{Wilson04:Memoir}. +% \begin{macrocode} +\ifpdf\relax + \pdfpageheight=\paperheight + \pdfpagewidth=\paperwidth + \pdfvorigin=0.9in + \pdfhorigin=1in +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\headheight} +% We leave generous header space: +% \begin{macrocode} +\setlength{\headheight}{32pt} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\footskip} +% \changes{v0.3}{2007/08/23}{Redefined} +% \changes{v0.4}{2007/09/02}{Changed} +% The footer is slightly larger than in \progname{amsart} +% \begin{macrocode} +\setlength{\footskip}{42pt}% +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{\topmargin} +% The top margin is 50 bp: +% \changes{v0.4}{2007/09/02}{Changed offsets} +% \begin{macrocode} +\setlength\topmargin{50bp} +\addtolength\topmargin{-0.9in} +\addtolength\topmargin{-\topskip} +\addtolength\topmargin{-\headsep} +\@settopoint\topmargin +% \end{macrocode} +% \end{macro} +% \begin{macro}{\textheight} +% \changes{v0.4}{2007/09/02}{Changed} +% This code is similar to the one in~\cite{classes}. |\textheight| +% is the height of the text including footnotes, but excluding +% running head and foot. We start with |\paperheight| and subtract +% margins, running heads and foots: +% \begin{macrocode} +\setlength\@tempdima{\paperheight} +\addtolength\@tempdima{-\topmargin} +\addtolength\@tempdima{-26bp} % Bottom margin +\addtolength\@tempdima{-\headheight} +\addtolength\@tempdima{-\headsep} +\addtolength\@tempdima{-\footskip} +\addtolength\@tempdima{-1in} +% \end{macrocode} +% We want this length to contain an integer number of lines: +% \begin{macrocode} +\divide\@tempdima\baselineskip +\@tempcnta=\@tempdima +\setlength\textheight{\@tempcnta\baselineskip} +% \end{macrocode} +% Now we take care of the first line height: +% \begin{macrocode} +\addtolength\textheight{\topskip} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\evensidemargin} +% \begin{macro}{\oddsidemargin} +% The margins on even and odd pages are 43 bp: +% \begin{macrocode} +\setlength\evensidemargin{43bp} +\addtolength{\evensidemargin}{-1in} +\setlength\oddsidemargin{43bp} +\addtolength{\oddsidemargin}{-1in} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\textwidth} +% The way to set up the right margin is slightly different: +% \begin{macrocode} +\setlength\textwidth{\paperwidth} +\addtolength{\textwidth}{-1in} +\addtolength\textwidth{-\evensidemargin} +\addtolength\textwidth{-43bp} % right margin +\@settopoint\textwidth +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\parindent} +% The paragraph indentation is 1em: +% \begin{macrocode} +\setlength\parindent{1em} +% \end{macrocode} +% \end{macro} +% +% +% +% +%\subsection{Headers} +%\label{sec:headers} +% +% +% \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} +% +% It is easy to set up headers with \progname{fancyhdr}: +% \begin{macrocode} +\pagestyle{fancy} +\fancyhead[LO]{\footnotesize Vol.~\currentvolume, \currentyear} +\fancyhead[CO]{\footnotesize\shorttitle} +\fancyhead[RO]{\footnotesize\thepage} +\fancyhead[LE]{\footnotesize\thepage} +\fancyhead[CE]{\footnotesize\shortauthors} +\fancyhead[RE]{\footnotesize Isr. J. Math.} +\fancyfoot{} +% \end{macrocode} +% +% 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{}% + \chead{\tiny% + ISRAEL JOURNAL OF MATHEMATICS \textbf{\currentvolume} + (\currentyear), + \start@page--\end@page\\[0.5ex] + DOI: \@doiinfo}% + \cfoot{\thepage}}% +% \end{macrocode} +% +%\subsection{Top Matter Macros} +%\label{sec:top_matter_code} +% +% Most top matter macros are defined in \progname{amsart}. Here we +% just add some new macros and redefine some. +% +% \begin{macro}{\author} +% The macro |\author| provided by \progname{amsart} is almost what +% we need. ``Almost'' because we want to add author's name(s) to +% the address list to typeset them together. +% +% Another note: \progname{amsart} stores the list of all authors in +% the macro |\authors|. We need it now only to check whether the +% list is empty +% \begin{macrocode} +\renewcommand{\author}[2][]{% + \ifx\@empty\authors + \gdef\authors{#2}% + \gdef\addresses{\author{#2}}% + \else + \g@addto@macro\authors{\and#2}% + \g@addto@macro\addresses{\and\author{#2}}% + \fi + \def\@tempa{#1}% + \ifx\@tempa\@empty\relax + \ifx\@empty\shortauthors + \gdef\shortauthors{#2}% + \else + \g@addto@macro\shortauthors{\and#2}% + \fi + \else + \ifx\@empty\shortauthors + \gdef\shortauthors{#1}% + \else + \g@addto@macro\shortauthors{\and#1}% + \fi + \fi +}% +% \end{macrocode} +% +% +% \end{macro} +% +% +% \begin{macro}{abstract} +% \changes{v0.3}{2007/08/23}{Changed spacing} +% The following code is mostly from~\cite{Downes04:amsart} with the +% changes due to our style. The comments are mostly from the same +% source. +% +% {\itshape In AMS-derived document classes, the abstract should be placed +% before |\maketitle| (otherwise the desired ordering of frontmatter +% elements cannot be ensured in all cases).} +% \begin{macrocode} +\newbox\abstractbox +% \end{macrocode} +% {\itshape We start by checking whether |\maketitle| has already been used +% (in which case it was reset to \cs{relax}); if so, we give a +% warning that the abstract should be placed before |\maketitle|.} +% \begin{macrocode} +\renewenvironment{abstract}{% + \ifx\maketitle\relax + \ClassWarning{\@classname}{Abstract should precede + \protect\maketitle\space in AMS-derived document classes; reported}% + \fi + \global\setbox\abstractbox=\vtop \bgroup + \vglue 10pt plus 6pt minus 6pt% + \normalfont\tiny + \centering\MakeUppercase{\abstractname}\par% + \Small + \list{}{\labelwidth\z@ + \leftmargin3pc \rightmargin\leftmargin + \listparindent\normalparindent \itemindent\z@ + \parsep\z@ \@plus\p@ +% \end{macrocode} +% {\itshape In order to get equation numbers indented with the rest of the +% abstract, we have to do this:} +% \begin{macrocode} + \let\fullwidthdisplay\relax + }% + \item[]% +}{% + \vspace*{-10pt} + \endlist\egroup +% \end{macrocode} +% {\itshape If the abstract was supposed to be typeset earlier, then +% \cs{@setabstract} is now equal to \cs{relax}, and we had better +% drop the contents of the abstract box onto the page immediately, to +% salvage the situation as best we can.} +% \begin{macrocode} + \ifx\@setabstract\relax \@setabstracta \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{\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\@tempa{#2}% + \ifx\@tempa\@empty\def\end@page{\pageref{LastPage}}% + \else\def\end@page{#2}\fi} +\pagespan{1}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\doiinfo} +% This is the doi number of the article: +% \begin{macrocode} +\def\doiinfo#1{\gdef\@doiinfo{#1}} +\doiinfo{10.1007/s000000000000000000000000} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\thanks} +% \changes{v0.3}{2007/08/23}{Changed size} +% The macro |\thanks| is redefined in \progname{amsart}. Here is +% the adapted original definition from the \LaTeX{} kernel. Note +% that the footnotes on the title page are typeset in |\small| size, +% rather than in |\footnotesize|. +% \begin{macrocode} +\def\thanks#1{\footnotemark + \protected@xdef\thankses{\thankses + \protect\footnotetext[\the\c@footnote]{\small#1}}% +} +\let\@thanks\@empty +% \end{macrocode} +% +% \end{macro} +% +%\subsection{Typesetting Top Matter} +%\label{sec:maketitle} +% +% +% \begin{macro}{\@maketitle@hook} +% \changes{v0.3}{2007/08/23}{Changed footnotes formatting} +% \changes{v1.0}{2007/09/03}{Deleted rlap from footnotemark} +% The |\@maketitle@hook| is called by |\maketitle| in +% \progname{amsart}. We use it to a number of redefinitions. +% \begin{macrocode} +\def\@maketitle@hook{% +% \end{macrocode} +% At this point we collected all authors in |\shortauthors|, so we +% can uppercase it: +% \begin{macrocode} + \uppercasenonmath\shortauthors +% \end{macrocode} +% +% The footnote numbering on the title page is rather interesting. It +% is $\ast$, then $\ast\ast$, then $\dagger$, then $\dagger\dagger$, +% etc. +% \begin{macrocode} + \renewcommand\thefootnote{\ifcase\c@footnote\relax + \or\@fnsymbol{1}% + \or\@fnsymbol{1}\@fnsymbol{1}% + \or\@fnsymbol{2}% + \or\@fnsymbol{2}\@fnsymbol{2}% + \or\@fnsymbol{3}% + \or\@fnsymbol{3}\@fnsymbol{3}% + \or\@fnsymbol{4}% + \or\@fnsymbol{4}\@fnsymbol{4}% + \or\@fnsymbol{5}% + \or\@fnsymbol{5}\@fnsymbol{5}% + \or\@fnsymbol{6}% + \or\@fnsymbol{6}\@fnsymbol{6}% + \fi}% + \def\@makefnmark{\@textsuperscript{\normalfont\@thefnmark}}% + \long\def\@makefntext##1{\noindent\hangindent=2em\hangafter=1 + \hb@xt@2em{% + \hss\@textsuperscript{\normalfont\footnotesize\@thefnmark\space}}##1}% + \def\footnoterule{\kern-3pt\hrule width 2in\kern 2.6pt} + \setcounter{footnote}{0}% +}% +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@adminfootnotes} +% \progname{amsart} typesets the footnotes \emph{before} typesetting +% the authors and title. Since we form the footnotes later, we must +% delay this till the end of the top matter: +% \begin{macrocode} +\def\@adminfootnotes{}% +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\andify} +% In the US the common style for lists is ``Tom, Dick, and Harry''. +% It is hard-coded into \progname{amsart}. However, our journal +% style is ``Tom, Dick and Harry'' (is it the British usage?). +% Therefore we need to redefine the function |\andify|: +% \begin{macrocode} +\renewcommand{\andify}{% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\@@and} +% Normally the macro |\@@and| is expanded just to 'and'. However, +% if |french| option is selected, we want the french version: +% \begin{macrocode} +\def\@@and{AND} +\ifijm@french\def\@@and{ET}\fi +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@@by} +% Same with |\@@by|: +% \begin{macrocode} +\def\@@by{BY} +\ifijm@french\def\@@by{PAR}\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\curraddrname} +% \begin{macro}{\emailaddrname} +% \begin{macro}{\urladdrname} +% The keywords for the specific parts of the address (e-mail, +% current address, etc.) depend on the language chosen. +% \begin{macrocode} +\def\curraddrname{Current address:}% +\def\emailaddrname{e-mail:}% +\def\urladdrname{URL:}% +\ifijm@french + \def\curraddrname{Adresse actuelle:}% + \def\emailaddrname{courriel:}% +\fi +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\@settitle} +% The title is set in large font uppercase. There is a problem, +% however: uppercasing title means uppercasing \emph{everything}, +% including thanks! We solve this problem in the following way: we +% typeset the title twice, once invisibly in the lowercase, and +% again in uppercase, but without typesetting the footnote text. +% \begin{macrocode} +\def\@settitle{% + \begin{center}% + \makebox[0pt]{\hphantom{\@title}}% + \def\thanks##1{\addtocounter{footnote}{-1}\footnotemark}% + \uppercasenonmath\@title + \Large\baselineskip=14pt\lineskiplimit=2pt\lineskip=2pt\@title% + \end{center}}% +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@setauthors} +% While we call this macro |\@setauthors|, in fact it is setting the +% names \emph{and} addresses of the authors. +% +% The authors' block is centered: +% \begin{macrocode} +\def\@setauthors{\vglue 21pt plus 6pt minus 3pt% + \begin{center}% +% \end{macrocode} +% +% We need to properly treat the current address, e-mail and URL of the +% authors. Note that \progname{amsart} uses an optional first +% argument to these macros; we silently drop it. +% \begin{macrocode} + \def\curraddr##1##2{\begingroup + \@ifnotempty{##2}{\par\curraddrname{}\par + ##2\par}\endgroup}% + \def\email##1##2{\begingroup + \@ifnotempty{##2}{\par\emailaddrname{}~% + ##2\par}\endgroup}% + \def\urladdr##1##2{\begingroup + \@ifnotempty{##2}{\par\urladdrname{}~% + ##2\par}\endgroup}% +% \end{macrocode} +% +% We print the word ``by'' only if there is at least one author. +% I am not sure how it can be that a manuscript has no authors, but +% has addresses defined. Maybe official editorial? +% \begin{macrocode} + \if\authors\@empty\relax\else{\normalfont\tiny\@@by}\par\medskip +% \end{macrocode} +% The authors are typeset in small caps: +% \begin{macrocode} + \def\author##1{{\normalsize\scshape##1}\par\medskip} +% \end{macrocode} +% The keyword ``and'' is typeset like ``by'' with large skip: +% \begin{macrocode} + \def\and{\par\bigskip{\normalfont\tiny\@@and}\par\medskip} +% \end{macrocode} +% And everything else is typeset in italics: +% \begin{macrocode} + \small\itshape\addresses +% \end{macrocode} +% \begin{macrocode} + \end{center}}% +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@maketitle} +% \changes{v0.3}{2007/08/23}{Changed size for date} +% We typeset footnotes at the end of the top matter typesetting. +% Note the larger type size for the |\@date| footnote. +% \begin{macrocode} +\let\@origmaketitle=\@maketitle +\def\@maketitle{\@origmaketitle + \thankses + \ifx\@date\@empty\else + \def\thefootnote{}% + \footnotetext{\small\@date}\fi% + \gdef\thefootnote{\@arabic\c@footnote}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\enddoc@text} +% In \progname{amsart} the macro |\enddoc@text| typesets addresses +% at the end of the document. We do not need it: +% \begin{macrocode} +\def\enddoc@text{} +% \end{macrocode} +% \end{macro} +% +% +% +%\subsection{Table of Contents} +%\label{sec:toc} +% By default we include in the table of contents only sections: +% \begin{macrocode} +\setcounter{tocdepth}{1} +% \end{macrocode} +% \begin{macro}{\contentsnamefont} +% The table of contents is typeset smaller than in +% \progname{amsart}: +% \begin{macrocode} +\renewcommand\contentsnamefont{\scshape\footnotesize} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@starttoc} +% \changes{v1.2}{2007/11/15}{Redefined} +% \changes{v1.5}{2010/03/02}{Added |\makeatletter| to make compatible +% with |babel|} +% We also rewrite |\@starttoc| to make the type smaller. The +% comments are again from \progname{amsart}: +% \begin{macrocode} +\def\@starttoc#1#2{\begingroup + \setTrue{#1}% +% \end{macrocode} +% {\itshape Remove the skip after the abstract so that we can +% substitute another.} +% \begin{macrocode} + \par\removelastskip\vskip\z@skip +% \end{macrocode} +% {\itshape The first two arguments of \cs{@startsection} here are +% special values +% that cause different internal branches to be taken.} +%\begin{verbatim} +% Arguments: {} = name = empty +% \@M = no number should be used and no table of contents entry +% \z@ = indent amount +% 12pt + 12pt = vskip before +% 6pt = vskip after +% \centering\contentsnamefont = format +%\end{verbatim} +% \begin{macrocode} + \@startsection{}\@M\z@{\linespacing\@plus\linespacing}% + {.5\linespacing}{\centering\contentsnamefont}{#2}% +% \end{macrocode} +% {\itshape If we have a list of figures or list of tables we want to put +% them in the main table of contents, but we don't want to put an +% entry there for the main table of contents itself. So we check +% to see if argument 2 is |\contentsname| and if it is then +% we refrain from doing |\addcontentsline|.} +% \begin{macrocode} + \ifx\contentsname#2% + \else \addcontentsline{toc}{section}{#2}\fi +% \end{macrocode} +% We want the table of contents to have the same width as the abstract +% \begin{macrocode} + \list{}{\labelwidth\z@ + \leftmargin2.4pc \rightmargin\leftmargin + \listparindent\z@ \itemindent\z@ + \parsep\z@ \@plus\p@}% + \item[]\makeatletter% + \small\@input{\jobname.#1}\endlist% + \if@filesw + \@xp\newwrite\csname tf@#1\endcsname + \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax + \fi + \global\@nobreakfalse \endgroup + \addvspace{32\p@\@plus14\p@}% + \let\tableofcontents\relax +}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@dotsep} +% Separation between the dots for table of contents: +% \begin{macrocode} +\newcommand\@dotsep{4.5} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\@tocline} +% We want dots in the table of contents\dots +% \begin{macrocode} +\def\@tocline#1#2#3#4#5#6#7{\relax + \ifnum #1>\c@tocdepth % then omit + \else + \par \addpenalty\@secpenalty\addvspace{#2}% + \begingroup \hyphenpenalty\@M + \@ifempty{#4}{% + \@tempdima\csname r@tocindent\number#1\endcsname\relax + }{% + \@tempdima#4\relax + }% + \parindent\z@ \leftskip#3\relax \advance\leftskip\@tempdima\relax + \rightskip\@pnumwidth plus4em \parfillskip-\@pnumwidth + #5\leavevmode\hskip-\@tempdima #6\nobreak\relax + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \hbox to\@pnumwidth{\@tocpagenum{#7}}\par + \nobreak + \endgroup + \fi}% +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\l@section} +% \changes{v1.2}{2007/11/15}{Redefined to check whether subsections +% are present} +% The actual formatting of section entries depend whether +% subsections are included in toc. If yes, the sections are bold. +% \begin{macrocode} +\def\l@section{% + \@tocline{1}{0pt}{1pc}{}{% + \ifnum\c@tocdepth>1\bfseries\fi}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@subsection} +% \begin{macro}{\l@subsubsection} +% \changes{v1.2}{2007/11/14}{Added indentation} +% \changes{v1.3}{2008/02/12}{Changed indentation} +% These entries are indented. +% \begin{macrocode} +\def\l@subsection{\@tocline{2}{0pt}{2.8pc}{}{}} +\def\l@subsubsection{\@tocline{3}{0pt}{4.6pc}{}{}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% +%\subsection{Captions} +%\label{sec:captions} +% +% \begin{macro}{\@captionheadfont} +% \changes{v0.3}{2007/08/23}{Redefined} +% The captions in \progname{amsart} are in small caps. In this +% journal they are not: +% \begin{macrocode} +\def\@captionheadfont{\normalfont} +% \end{macrocode} +% +% \end{macro} +% +%\subsection{Sectioning} +%\label{sec:sections} +% +% \begin{macro}{\@secnumfont} +% It is possible in \progname{amsart} to have section numbers in the +% font different from the title font. We do not want this: +% \begin{macrocode} +\let\@secnumfont\@empty +% \end{macrocode} +% +% \end{macro} +% +% Now we redefine sections. The arguments of the |\@startsection| +% commands are +%\begin{verbatim} +% #1 #2 #3 #4 #5 #6 +% {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} +%\end{verbatim} +% +% \begin{macro}{\section} +% Most sections are not centered, unlike \progname{amsart} ones: +% \begin{macrocode} +\def\section{\@startsection{section}{1}% + \z@{20pt plus 4pt minus 4pt}{0.5\linespacing}% + {\normalfont\bfseries}}% +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\centeredsection} +% \changes{v0.3}{2007/08/23}{Added macro} +% However, there are special centered sections, for example, +% ``References'': +% \begin{macrocode} +\def\centeredsection{\@startsection{section}{1}% + \z@{20pt plus 4pt minus 4pt}{0.5\linespacing}% + {\normalfont\bfseries\centering}}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\subsection} +% Subsections are in small caps on the line with text. +% \begin{macrocode} +\def\subsection{\@startsection{subsection}{2}% + \z@{.5\linespacing\@plus.7\linespacing}{-0.5em}% + {\normalfont\scshape}}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\subsubsection} +% Subsubsection heads are in italics +% \begin{macrocode} +\def\subsubsection{\@startsection{subsubsection}{3}% + \z@{.5\linespacing\@plus.7\linespacing}{-0.5em}% + {\normalfont\itshape}}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\paragraph} +% \begin{macro}{\subparagraph} +% Paragraphs and subparagraphs are in normal font: +% \begin{macrocode} +\def\paragraph{\@startsection{paragraph}{4}% + \z@\z@{-0.5em}% + {\normalfont}}% +\def\subparagraph{\@startsection{subparagraph}{5}% + \z@\z@{-0.5em}% + {\normalfont}}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +%\begin{macro}{\if@afterindent} +% \changes{v0.3}{2007/08/23}{Deleted first indent after the section head} +% The first paragraph after section head is \emph{not} indented, +% like in standard \LaTeX---but \emph{unlike} \progname{amsart}. +% The code below is inspired by David Carlisle's package +% \progname{indentfirst}~\cite{Carlisle95:indentfirst} (of course +% David wanted to \emph{have} the first indent, and we want +% the opposite): +% \begin{macrocode} +\let\@afterindenttrue\@afterindentfalse +\@afterindentfalse +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\appendix} +% \changes{v1.4}{2009/11/10}{Redefined the macro to delete ugly indent +% in TOC} +% The standard \progname{amsart} macro |\@tochangmeasure| measures +% the width of the TOC label for the hanging indentation of TOC +% entries. However, for appendices this label includes the word +% ``Appendix'', which leads to an ugly indent of TOC entries. +% Therefore we stop measuring in appendices: +% \begin{macrocode} +\def\appendix{\par\c@section\z@ \c@subsection\z@ + \let\sectionname\appendixname + \def\thesection{\@Alph\c@section}% + \def\@tochangmeasure##1{}} +% \end{macrocode} +% +% \end{macro} +% +% +% +%\subsection{Theorem Styles} +%\label{sec:theorem_code} +% +% 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} +% +% +% +% In the |plain| style the name (``theorem'') and number are +% printed in small caps, the optional note is in +% upright, and the text is slanted. +% \begin{macrocode} +\newtheoremstyle{plain}{0.5\linespacing}{0.5\linespacing}{\slshape}{0pt}% + {\scshape}{:}{0.5em}{\thmname{#1}\thmnumber{ #2}\thmnote{\upshape{} (#3)}} +% \end{macrocode} +% +% +% In the |definition| style the name, the number is slanted, and the +% text and the note are upright. +% \begin{macrocode} +\newtheoremstyle{definition}{0.5\linespacing}{0.5\linespacing}% + {\upshape}{0pt}% + {\slshape}{:}{0.5em}{\thmname{#1}\thmnumber{ #2}\thmnote{\upshape{} (#3)}} +% \end{macrocode} +% +% +% In the |remark| style the name and the number are in small caps, +% the note and the text text is upright. +% \changes{v0.4}{2007/09/03}{Redefined remark and definition styles: +% the note is now upright.} +% \begin{macrocode} +\newtheoremstyle{remark}{0.5\linespacing}{0.5\linespacing}% + {\upshape}{0pt}% + {\scshape}{:}{0.5em}{\thmname{#1}\thmnumber{ #2}\thmnote{\upshape{} (#3)}} +% \end{macrocode} +% +% +% +% \begin{macro}{proof} +% \changes{v0.3}{2007/08/23}{Redefined \progname{amsart} defaults} +% We want to have the word ``proof'' slanted rather than italicized: +% \begin{macrocode} +\renewenvironment{proof}[1][\proofname]{\par + \pushQED{\qed}% + \normalfont \topsep6\p@\@plus6\p@\relax + \trivlist + \item[\hskip\labelsep + \slshape + #1\@addpunct{.}]\ignorespaces +}{% + \popQED\endtrivlist\@endpefalse +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\qed} +% \changes{v0.3}{2007/08/24}{Redefined \progname{amsart} default} +% \changes{v1.3}{2008/01/27}{Changed math mode branch} +% Unlike \progname{amsart}, we do not want the QED symbol to be +% flushed right: +% \begin{macrocode} +\DeclareRobustCommand{\qed}{% + \leavevmode\unskip\penalty9999 \hbox{}\nobreak + \ifmmode + \makebox[0pt][l]{\qquad\hbox{\qedsymbol}}% + \else + \qquad\hbox{\qedsymbol}\fi}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mqedhere} +% \changes{v1.3}{2008/01/27}{Introduced the command} +% Normally |\qedhere| is typeset with zero effective width in math +% mode to present centering alignment in equations. This presents +% problems in |multline| environment, where the last line is flushed +% right, so |\qedhere| would be typeset on the margin. The following +% command switches to text mode: +% \begin{macrocode} +\def\mqedhere{\ensuremath{\text{\qedhere}}}% +% \end{macrocode} +% +% \end{macro} +% +% +% \begin{macro}{\qedsymbol} +% \changes{v0.3}{2007/08/24}{Redefined \progname{amsart} default} +% The QED symbol itself is a small closed box: +% \begin{macrocode} +\def\qedsymbol{\rule[0.47pt]{4pt}{6pt}}% +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\namedprop} +% \changes{v1.1}{2007/09/30}{Introduced macro} +% This is the unstarred version of the macro. It calls the command +% and then closes the group opened by |\namedprop@| +% \begin{macrocode} +\newenvironment{namedprop}{% + \namedprop@}{% + \end{namedprop@thm}% + \egroup} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\namedprop*} +% \changes{v1.1}{2007/09/30}{Introduced macro} +% The starred version is similar: +% \begin{macrocode} +\newenvironment{namedprop*}{% + \namedprop@star@}{% + \end{namedprop@thm}% + \egroup} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\namedprop@star@} +% \changes{v1.1}{2007/09/30}{Introduced macro} +% The starred version has two mandatory arguments: style and and +% name, and one optional argument: note. +% \begin{macrocode} +\def\namedprop@star@#1#2{% + \@ifnextchar[{\namedprop@star@@{#1}{#2}}{\namedprop@star@@{#1}{#2}[]}}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\namedprop@star@@} +% \changes{v1.1}{2007/09/30}{Introduced macro} +% This is the command that does the real work: +% \begin{macrocode} +\def\namedprop@star@@#1#2[#3]{% + \bgroup + \let\namedprop@thm\relax + \theoremstyle{#1} + \newtheorem*{namedprop@thm}{#2} + \begin{namedprop@thm}[#3]} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\namedprop@} +% \changes{v1.1}{2007/09/30}{Introduced macro} +% This is the unstarred version of the macro. It has three +% mandatory arguments: style, counter and the name, and one +% optional argument: the note. +% \begin{macrocode} +\def\namedprop@#1#2#3{% + \@ifnextchar[{\namedprop@@{#1}{#2}{#3}}{\namedprop@@{#1}{#2}{#3}[]}}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\namedprop@@} +% \changes{v1.1}{2007/09/30}{Introduced macro} +% And the real macro: +% \begin{macrocode} +\def\namedprop@@#1#2#3[#4]{% + \bgroup + \let\namedprop@thm\relax + \theoremstyle{#1} + \newtheorem{namedprop@thm}[#2]{#3} + \begin{namedprop@thm}[#4]} +% \end{macrocode} +% \end{macro} +% +%\subsection{Bibliography} +%\label{sec:biblio_code} +% +% \begin{macro}{\@bibtitlestyle} +% \changes{v0.3}{2007/08/23}{Redefined to have centered heading} +% Unlike other section heads, the word ``References'' in the journal +% is centered: +% \begin{macrocode} +\renewcommand{\@bibtitlestyle}{% + \@xp\centeredsection\@xp*\@xp{\refname}% +}% +% \end{macrocode} +% \end{macro} +% +%\subsection{End of Class} +%\label{end} +% +% +% \begin{macrocode} +% +% \end{macrocode} +% +%\Finale +%\clearpage +% +%\PrintChanges +%\clearpage +%\PrintIndex +% +\endinput diff --git a/macros/latex/contrib/ijmart/ijmart.ins b/macros/latex/contrib/ijmart/ijmart.ins new file mode 100644 index 0000000000..137726fcab --- /dev/null +++ b/macros/latex/contrib/ijmart/ijmart.ins @@ -0,0 +1,29 @@ +% +% Doctrip file for ijmart +% This file is in public domain +% $Id: ijmart.ins,v 1.3 2007-08-10 18:16:28 boris Exp $ +% +\def\batchfile{ijmart.ins} +\input docstrip +\keepsilent +\showprogress + + +\askforoverwritefalse + +\generate{% + \file{ijmart.cls}{\from{ijmart.dtx}{class}}} + +\obeyspaces +\Msg{*****************************************************}% +\Msg{* Congratulations! You successfully generated the *}% +\Msg{* ijmart package. *}% +\Msg{* *}% +\Msg{* Please move the files ijmart.cls and ijmart.bst *}% +\Msg{* to the place where the LaTeX files are stored in *}% +\Msg{* your system. The manual is ijmart.pdf. *}% +\Msg{* *}% +\Msg{* The package is released under LPPL *}% +\Msg{* *}% +\Msg{* Happy TeXing! *}% +\Msg{*****************************************************}% \ No newline at end of file diff --git a/macros/latex/contrib/ijmart/ijmart.pdf b/macros/latex/contrib/ijmart/ijmart.pdf new file mode 100644 index 0000000000..d5328cefa4 Binary files /dev/null and b/macros/latex/contrib/ijmart/ijmart.pdf differ diff --git a/macros/latex/contrib/ijmart/ijmsample.bib b/macros/latex/contrib/ijmart/ijmsample.bib new file mode 100644 index 0000000000..d1d7a9c70c --- /dev/null +++ b/macros/latex/contrib/ijmart/ijmsample.bib @@ -0,0 +1,169 @@ + + +@Article{dihe:newdir, + author = {W. Diffie and E. Hellman}, + title = {New directions in Cryptography}, + fjournal = {IEEE Transactions on Information Theory}, + journal = {IEEE Trans. Inf. 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} +} + + + + +@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, + 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 J. Algorith. and Discr. Meth.}, + fjournal = {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} +} diff --git a/macros/latex/contrib/ijmart/ijmsample.pdf b/macros/latex/contrib/ijmart/ijmsample.pdf new file mode 100644 index 0000000000..01d9d1c0ad Binary files /dev/null and b/macros/latex/contrib/ijmart/ijmsample.pdf differ diff --git a/macros/latex/contrib/ijmart/ijmsample.tex b/macros/latex/contrib/ijmart/ijmsample.tex new file mode 100644 index 0000000000..6661afdfa8 --- /dev/null +++ b/macros/latex/contrib/ijmart/ijmsample.tex @@ -0,0 +1,2308 @@ +%%% ==================================================================== +%%% @LaTeX-file{ +%%% filename = "ijmsample.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{ijmart} +% 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{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*{notation}{Notation} + +\theoremstyle{remark} +\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} + +\begin{document} +\title[Sample Paper]{Sample Paper for the \pkg{ijmart} + Class\thanks{Version 2.0, 1999/11/15}} +\author[AMS]{American Mathematical Society} +\address{Technical Support\\ +Electronic Products and Services\\ +P. O. Box 6248\\ +Providence, RI 02940\\ +USA} +\email{tech-support@ams.org\thanks{Even e-mail addresses can have + footnotes!}} +\author[Magnes Press]{The Hebrew University Magnes Press\thanks{This + is the copyright owner of the style}} +\author[IJM]{Israel Journal of Mathematics Editorial Board\thanks{This + entry is inserted just to show how to typeset several authors with + the same address}} +\address{P.O. Box 39099\\ Jerusalem 91390\\ +Israel} + + + +\date{Received on MONTH, YEAR} +\issueinfo{VOL}{NUM}{MONTH}{YEAR} +\doiinfo{10.1007/DOI-NUMBER} +\begin{abstract} + This is a test file for \textsf{ijmart} class based on the + \texttt{testmath.tex} file from the \textsf{amsmath} distribution. +\end{abstract} +\maketitle +\tableofcontents + + +\section{Introduction} + + +This paper demonstrates the use of \texttt{ijmart} class. It is based +on \texttt{testmath.tex} from \AmS-\LaTeX{} distribution. The text +is (slightly) reformatted according to the requirements of the +\texttt{ijmart} style. + + +\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. + +\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{Named Propositions} +\label{s:namedprops} + +Here we discuss several propositions: +\begin{namedprop}{plain}{thm}{G\"odel Theorem}[First incompleteness theorem] + For any consistent formal, computably enumerable theory that proves + basic arithmetical truths, an arithmetical statement that is true, + but not provable in the theory, can be constructed. That is, any + effectively generated theory capable of expressing elementary + arithmetic cannot be both consistent and complete. +\end{namedprop} + +\begin{namedprop}{plain}{thm}{G\"odel Theorem} + For any formal recursively enumerable (i.e. effectively generated) + theory T including basic arithmetical truths and also certain truths + about formal provability, T includes a statement of its own + consistency if and only if T is inconsistent. +\end{namedprop} + +\begin{namedprop*}{plain}{Abel's Lemma}[Summation by parts] + For any sequences $f_k$ and $g_k$ + \begin{displaymath} + \sum_{k=m}^n f_k(g_{k+1}-g_k) = f_{n+1}g_{n+1} - + \sum_{k=m}^n g_{k+1} (f_{k+1} - f_k) + \end{displaymath} +\end{namedprop*} + +\begin{namedprop*}{plain}{Fermat's last theorem} + For any $n>2$ the equation $x^n+y^n=z^n$ has no non-zero integer + solutions. +\end{namedprop*} + +\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