Hans et al,
I tried saving this file as ~/tmp/math-ext.tex and compiling with:
texexec --module math-ext.tex
But I got:
[MP texexec-mpgraph.4000] [1.1] [2.1] .
(/usr/local/teTeX/share/texmf.local/tex/context/base/verb-tex.tex
loading : Context Support Macros / Pretty TEX Verbatim
) . . . . . . . . .
Overfull \hbox (98.21335pt too wide) in paragraph at lines 72--72
[][][] [][] [][] [][] [][] [][]\*10pttttf* {[][]\ifnum\recurselevel[]
[]>[][]\pl
usone\appendtoks\tabskip\@@eqdistance[][]&[][]\tabskip\zeropoint\to
\scratchtoks
\fi[]
. . . [3.1] .
Overfull \hbox (87.71338pt too wide) in paragraph at lines 112--112
[][][] [][] [][] [][]\*10pttttf* \!!toksc[][]{[][]\hfil\tabskip
\centering[][]&[
][]\kern[][]-[][]\displaywidth\rlap[][]{[][]$[][]\forgetalign[][]##[]
[]$[][]}[]
[]\tabskip\displaywidth[][]}[][]%[]
. . . . . . . <texexec-texexec.tmp> (./texexec-texexec.tmp [4.2])
<texexec-texexec.tmp> (./texexec-texexec.tmp
! Undefined control sequence.
<recently read> \startalign
l.1 \placeformula \startformula \startalign
?
Am I doing something wrong?
On Jan 15, 2006, at 2:37 PM, Hans Hagen wrote:
Hi,
Here a first attempts for a flexible alignment mechanism (i depend
on taco for the fine points of math typesetting since he's typeset
\infty more complex formulas than i have)
(n=n_of_columns, m=n_of_pairs, so both requested multiple column
features are supported)
Hans
%D \module
%D [ file=math-ext,
%D version=2006.01.14,
%D title=\CONTEXT\ Math Macros,
%D subtitle=Extra Macros,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright=\PRAGMA]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
% some simple math constructs (based on user requests)
%
% preliminary
\unprotect
% adapted stuff
% we need to make this plain code a bit more 'readable'
\def\openup
{\afterassignment\dopenup\scratchdimen=}
\def\dopenup
{\advance\lineskip \scratchdimen
\advance\baselineskip \scratchdimen
\advance\lineskiplimit\scratchdimen}
\def\jot{.25\bodyfontsize} % plain tex: 3 pt (todo: better name)
[EMAIL PROTECTED]
[EMAIL PROTECTED] % \presetdisplayspacing or so
[EMAIL PROTECTED]
\openup\jot
\mathsurround\zeropoint
\everycr{\noalign{%
[EMAIL PROTECTED]
[EMAIL PROTECTED]
\ifdim\prevdepth>-\thousandpoint
\vskip-\lineskiplimit
\vskip\normallineskiplimit
\fi
\else
\penalty\interdisplaylinepenalty
\fi}}}
% context (hooks)
[EMAIL PROTECTED]@y
[EMAIL PROTECTED]@y}
[EMAIL PROTECTED]
% plain tex value: \centering = 0pt plus 1000pt minus 1000pt
% plain tex valye: \jot = 3pt
% n>1 #### needed, strange # interaction (maybe we need a toks in
recurse ane no macro)
\def\buildeqalign
{\scratchtoks\emptytoks
\dorecurse\@@eqm
{\ifnum\recurselevel>\plusone\appendtoks\tabskip\@@eqdistance&
\tabskip\zeropoint\to\scratchtoks\fi
\expanded{\scratchtoks{\the\scratchtoks\the\!!toksa}}%
\dorecurse{\numexpr\@@eqn-\plusone\relax}
{\expanded{\scratchtoks{\the\scratchtoks\the\!!toksb}}}}%
\expanded{\scratchtoks{\the\scratchtoks\the\!!toksc}}}
\def\forgetalign
{\tabskip\zeropoint\everycr\emptytoks}
\def\eqalign#1% why no halign here, probably because of displaywidth
{\!!toksa{\strut\hfil$\displaystyle{##}$}%
\!!toksb{&$\displaystyle{{}##}$\hfil}%
\!!toksc\emptytoks
\buildeqalign
\null\,\vcenter
{\openup\jot
\mathsurround\zeropoint
\expandafter \ialign \expandafter {\the\scratchtoks\crcr#1
\crcr}%
}\,}
\def\eqalignno#1%
{\!!toksa{\hfil$\forgetalign\displaystyle{##}$\tabskip\zeropoint}%
\!!toksb{&$\forgetalign\displaystyle{{}##}$\tabskip\zeropoint}%
\!!toksc{\hfil\tabskip\centering&\llap{$\forgetalign##$}\tabskip
\zeropoint}%
\buildeqalign
\presetdisplaymath
\tabskip\centering
\halign to \displaywidth \expandafter {\the\scratchtoks\crcr#1
\crcr}}
\def\leqalignno#1%
{\!!toksa{\hfil$\forgetalign\displaystyle{##}$\tabskip\zeropoint}%
\!!toksb{&$\forgetalign\displaystyle{{}##}$\tabskip\zeropoint}%
\!!toksc{\hfil\tabskip\centering&\kern-\displaywidth\rlap{$
\forgetalign##$}\tabskip\displaywidth}%
\buildeqalign
\presetdisplaymath
\tabskip\centering
\halign to \displaywidth \expandafter {\the\scratchtoks\crcr#1
\crcr}}
\definesystemvariable{eq}
\def\setupmathalign
{\dodoubleargument\getparameters[\??eq]}
\setupmathalign
[\c!n=2,
\c!m=1,
\c!distance=1em]
\def\numberedeqalign
{\doifelse\@@fmlocation\v!left\leqalignno\eqalignno}
\def\doalignNR[#1][#2]%
{\doifsomething{#1}
{\doifelse{#1}{+}
{\doformulanumber[][#2][]{}}
{\doformulanumber[#1][#2][]{}}}}
\def\startalign
{\dosingleempty\dostartalign}
\long\def\dostartalign[#1]#2\stopalign
{\doifassignmentelse{#1}{\setupmathalign[#1]}\donothing
\def\NC{\crcr\def\NC####1{&####1}}%
\def\EQ{&=}
\def\NR{&\dodoubleempty\doalignNR}%
% amstex compatibility mode: (ugly)
\def\notag{\def\\{&\crcr}}%
\doifelse{#1}{*}{\def\\{&\crcr}}{\def\\{&\doalignNR[+][]\crcr}}%
% end of compatibility mode
\numberedeqalign{#2}}
%D \startbuffer
%D \placeformula \startformula \eqalignno {
%D a &= b & \formulanumber \cr
%D c &= d \cr
%D &= e \cr
%D &= f & \formulanumber
%D } \stopformula
%D \stopbuffer
%D
%D \typebuffer \getbuffer
%D
%D \startbuffer
%D \placeformula \startformula \startalign
%D \NC a \EQ b \NR[+]
%D \NC c \EQ d \NR
%D \NC \EQ f \NR[for:hans]
%D \NC \EQ g \NR[for:whoelse][a]
%D \NC \EQ h \NR[for:whomore][b]
%D \NC \EQ i \NR
%D \stopalign \stopformula
%D \stopbuffer
%D
%D \typebuffer \getbuffer
%D
%D \startbuffer
%D \placeformula \startformula \startalign
%D \NC a \EQ b \NR[+]
%D \NC c \EQ d \NR
%D \NC \EQ f \NR
%D \NC \EQ g \NR
%D \NC \EQ h \NR
%D \NC \EQ i \NR[+]
%D \stopalign \stopformula
%D \stopbuffer
%D
%D \typebuffer \getbuffer
%D
%D \startbuffer
%D \placeformula \startformula \startalign
%D a &= b \\
%D c &= d \notag \\
%D &= e \notag \\
%D &= f \\
%D \stopalign \stopformula
%D \stopbuffer
%D
%D \typebuffer \getbuffer
%D
%D \startbuffer
%D \placeformula \startformula \startalign
%D a &= b \NR[+]
%D c &= d \NR
%D &= e \NR
%D &= f \NR[+]
%D \stopalign \stopformula
%D \stopbuffer
%D
%D \typebuffer \getbuffer
%D
%D \startbuffer
%D \placeformula \startformula \startalign
%D \NC a \NC \eq b \NR[+]
%D \NC c \NC \neq d \NR
%D \NC \NC \neq f \NR[for:hans]
%D \NC \NC \geq g \NR[for:whoelse][a]
%D \NC \NC \leq h \NR[for:whomore][b]
%D \NC \NC \neq i \NR
%D \stopalign \stopformula
%D \stopbuffer
%D
%D \typebuffer \getbuffer
%D
%D \startbuffer
%D \placeformula \startformula \startalign[*]
%D a &= b \\
%D c &= d \notag \\
%D &= e \notag \\
%D &= f \\
%D \stopalign \stopformula
%D \stopbuffer
%D
%D \typebuffer \getbuffer
%D
%D \startbuffer
%D \placeformula \startformula \startalign
%D x &= y \\
%D a &= b \\
%D \stopalign \stopformula
%D \stopbuffer
%D
%D \typebuffer \getbuffer
%D
%D \startbuffer
%D \placeformula \startformula \startalign[m=3]
%D x &= y & x &= y & z &= t \\
%D a &= b & p &= q & w &= s \\
%D \stopalign \stopformula
%D \stopbuffer
%D
%D \typebuffer \getbuffer
%D
%D \startbuffer
%D \placeformula \startformula \startalign[m=3,distance=0pt]
%D x &= y &= x &= y &= z &= t \\
%D a &= b &= p &= q &= w &= s \\
%D \stopalign \stopformula
%D \stopbuffer
%D
%D \typebuffer \getbuffer
%D
%D \startbuffer
%D \placeformula \startformula \startalign[n=5,distance=0pt]
%D x &= yy &= xx &= yy &= zz \\
%D a &= b &= p &= q &= w \\
%D \stopalign \stopformula
%D \stopbuffer
%D
%D \typebuffer \getbuffer
\protect \endinput
_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context
_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context