Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!samsung!think.com!mintaka!mit-eddie!uw-beaver!cornell!vavasis From: vavasis@afi.cs.cornell.edu (Stephen Vavasis) Newsgroups: comp.text.tex Subject: comments welcome Message-ID: <51627@cornell.UUCP> Date: 5 Feb 91 21:20:42 GMT Sender: nobody@cornell.UUCP Reply-To: vavasis@cs.cornell.edu (Stephen Vavasis) Distribution: comp Organization: Cornell Univ. CS Dept, Ithaca NY Lines: 86 These are some macros that I wrote, and I am planning to give them to SIAM for inclusion in "siam.sty", macros for typesetting SIAM journal papers. These macros generate the "end-of-proof" marker, which is supposed to be a square box. The current version of siam.sty can generate the box (\@endproofo below), but cannot position it correctly. The rules for positioning the box are: (1) 2 ems from the last character, if end-of-proof occurs in text. (2) Flush-right, if end-of-proof occurs in a displayed equation (note: SIAM uses left equation numbers). Since I am not an expert LaTeX hacker, I am hoping that some net person will see mistakes that I made so that I can give reasonably robust macros to SIAM. Thanks, Steve Vavasis (vavasis@cs.cornell.edu) % % \endproof macros. % macro \@endproofo generates the box to mark proof ends. % macro \@endprooft generates and end-of-proof box occurring % in text, preceded by the 2 ems of blank space. % macro @endproofnd generates the end-of-proof marker for % displayed equations for which LaTeX was planning to generate % a number. It works by setting a flag read by \@@eqncr and % \endequation % macro @endproofd generates the box for unnumbered displayed equations % using the plainTeX \eqno command. \def\@endproofo{{\vbox{\hrule\hbox{% \vrule height1.3ex\hskip0.8ex\vrule}\hrule }}} \def\@endprooft{\hspace{2em}\@endproofo} \def\@endproofnd{\global\@proofendtrue} \def\@endproofd{\eqno{\@endproofo}} % % Define a new flag ``numbering mode'' that tells us when % LaTeX will generate its own numbers. % % \newif\if@numberingmode \newif\if@proofend \@numberingmodefalse % % Change the equation environment to set the numbering % mode. % \def\equation{$$ % $$ BRACE MATCHING HACK \refstepcounter{equation}\@numberingmodetrue} % \def\endequation{\eqno{\if@proofend\@endproofo\global\@proofendfalse\fi \@eqnnum} % $$ BRACE MATCHING HACK $$\global\@ignoretrue\@numberingmodefalse} \def\@@eqncr{\let\@tempa\relax \ifcase\@eqcnt \def\@tempa{& & &}\or \def\@tempa{& &} \else \def\@tempa{&}\fi \@tempa \if@proofend\@endproofo\global\@proofendfalse\fi \if@eqnsw\@eqnnum\stepcounter{equation}\fi \global\@eqnswtrue\global\@eqcnt\z@\cr} % % The \endproof macro to generate end-of-proof markers. % Usage: % In text: % . . . and this concludes our proof.\endproof % In displayed equations: % $$ x \ge 0 \endproof $$ % In latex environments: % \begin{eqnarray} % . % . % x & \ge & 0 \endproof % \end{eqnarray} % Also works in the equation environment. % \def\endproof{% \ifmmode \if@numberingmode \@endproofnd \else \@endproofd \fi \else \@endprooft \fi}