\message{: version 25apr05, but with voffset.5truein, dfont bf, and toc simplified} % This is the file satmacros.tex, for use with Surveys in Approximation Theory. % It contains the definition of the various macros that appear in the % template file textemplate.tex , along with macros that support them. % In addition, it contains macros you might find useful (along with their % supporting macros). % % If you choose to change anything in this file, be sure to give it a % different name first. % The file is organized in sections. % Each section with a title in CAPITALS begins with the macros you would % actually be using (in additions to those that appear in the template file % textemplate.tex), followed by supporting macros. % The other sections only contain macros mentioned in textemplate.tex and % supporting macros. % TABLE of CONTENTS % FONTS % OPEN FACE LETTERS % BOLDFACE % USEFUL MACROS % SOME MATH MACROS % PROOF and END OF PROOF % page size % first page % footnote on first page % sections % FIGURE MACROS % PRECISE PLACEMENT % TABLE MACROS % AUTOMATIC SEQUENCING % set up counters % set up numbering % draft % acknowledgements % REFERENCES % SAT style % needed tokens % supporting macros % basic bib macros %********************** FONTS ******************************* \font\titlefont=cmr17 \font\twelverm=cmr12 \font\ninerm=cmr9 \font\sevenrm=cmr7 \font\sixrm=cmr6 \font\fiverm=cmr5 \font\ninei=cmmi9 \font\seveni=cmmi7 \font\ninesy=cmsy9 \font\sevensy=cmsy9 \font\tenbf=cmbx10 \font\sixbf=cmbx6 \font\fivebf=cmbx5 \font\ninebf=cmbx9 \font\nineit=cmti9 \font\ninesl=cmsl9 \font\nineex=cmex9 \font\cmsc=cmcsc10 \font\dfont=cmss10 \let\dfont\bf \font\efont=cmti10 \font\Bbb=msbm10 \def\ninepoint{\def\rm{\fam0\ninerm} \textfont0 = \ninerm \textfont1 = \ninei \textfont2 = \ninesy \textfont3 = \nineex \scriptfont0 = \sevenrm \scriptfont1 = \seveni \scriptfont2 = \sevensy \scriptscriptfont0 = \fiverm \scriptscriptfont1 = \fivei \scriptscriptfont2 = \fivesy \textfont\itfam=\nineit \def\it{\fam\itfam\nineit} \textfont\bffam=\ninebf \scriptfont\bffam=\sixbf \scriptscriptfont\bffam=\fivebf \def\bf{\fam\bffam\ninebf} \textfont\slfam=\ninesl \def\sl{\fam\slfam\ninesl} \baselineskip 10pt} %******************* OPEN FACE LETTERS **************** \def\CC{{\rm C\kern-.18cm\vrule width.6pt height 6pt depth-.2pt \kern.18cm}} \def\NN{{\mathop{{\rm I}\kern-.2em{\rm N}}\nolimits}} \def\PP{{\mathop{{\rm I}\kern-.2em{\rm P}}\nolimits}} \def\RR{{\mathop{{\rm I}\kern-.2em{\rm R}}\nolimits}} \def\RRt{{\titlefont I}\kern-.2em{\titlefont R}} %% This version of \RR can be used in the title of the paper \let\TT\Tbb \def\ZZ{{\mathop{{\rm Z}\kern-.28em{\rm Z}}\nolimits}} \def\Cbb{\hbox{{\Bbb{C}}}} \def\Dbb{\hbox{{\Bbb{D}}}} \def\Kbb{\hbox{{\Bbb{K}}}} \def\Nbb{\hbox{{\Bbb{N}}}} \def\Pbb{\hbox{{\Bbb{P}}}} \def\Qbb{\hbox{{\Bbb{Q}}}} \def\Rbb{\hbox{{\Bbb{R}}}} \def\Tbb{\hbox{{\Bbb{T}}}} \def\Zbb{\hbox{{\Bbb{Z}}}} %******************* BOLDFACE ************************* % Boldface math \def\bfm#1{{\dimen0=.01em\dimen1=.009em\makebold{$#1$}}} % Boldface subscript \def\bfs#1{{\dimen0=.008em\dimen1=.0073em \makebold{$\scriptstyle#1$}}} % Boldface subsubscript \def\bfss#1{{\dimen0=.006em\dimen1=.0057em \makebold{$\scriptscriptstyle#1$}}} \def\makebold#1{\mathord{\setbox0=\hbox{#1}% \copy0\kern-\wd0% \raise\dimen1\copy0\kern-\wd0% {\advance\dimen1 by \dimen1\raise\dimen1\copy0}\kern-\wd0% \kern\dimen0\raise\dimen1\copy0\kern-\wd0% {\advance\dimen1 by \dimen1\raise\dimen1\copy0}\kern-\wd0% \kern\dimen0\raise\dimen1\copy0\kern-\wd0% {\advance\dimen1 by \dimen1\raise\dimen1\copy0}\kern-\wd0% \kern\dimen0\raise\dimen1\copy0\kern-\wd0% \kern\dimen0\box0}} %********************** USEFUL MACROS *********************** \def\bull{\item{$\bullet$}} \def\nobull{\item{}} \def\cro{\cr \noalign{\vskip 4pt}} %% Use in place of \cr for extra space between cases \def\croo{\cr \noalign{\vskip 6pt}} %% Use in place of \cr for extra space between cases \def \dword#1{{\dfont #1}} \def \eword#1{{\efont #1}} \def\eg{{\it e.g.}}% \def\ie{{\it i.e.}} \def \lrm {{\rm (}} \def \rrm {{\rm )}} \def\ritem#1{\smallskip\item{\rm #1}} \def\ritemitem#1{\smallskip\itemitem{\rm #1}} \def\thc{{$\thinspace$:}} %********************** SOME MATH MACROS ******************** \def\inpro#1{\langle#1\rangle} \def\norm#1{\Vert#1\Vert} \def\dd{\,{\rm d}} % for integration \def\ee{{\rm e}} % for the base of the natural log \def\ii{{\rm i}} % for the imaginary unit %% (making them mathop places them less well) \def\frac#1#2{{#1 \over #2}} % #1 = numerator % #2 = denominator \def\fracc#1#2{\ninepoint{#1 \over #2}} % #1 = numerator % #2 = denominator \def\st{\/:\ } %% Use \st for "such that" in definitions of sets %********************** PROOF and END OF PROOF ************** \def\endproofsymbol{\makeblanksquare6{.4}} \def\eop{\endproofsymbol\nopf} %\def\eop{\hbox{}~\hfill\endproofsymbol\nopf} %% Mark the end of a proof \def\meop{~~\endproofsymbol} %% Use this inside of displayed equations instead of \eop \def\nopf{\medskip\goodbreak} %% If there is no proof, use this to insert space \def\pf{\noindent{\bf Proof: }} \def\makeblanksquare#1#2{ \dimen0=#1pt\advance\dimen0 by -#2pt \vrule height#1pt width#2pt depth0pt\kern-#2pt \vrule height#1pt width#1pt depth-\dimen0 \kern-#1pt \vrule height#2pt width#1pt depth0pt \kern-#2pt \vrule height#1pt width#2pt depth0pt } %********************** page size *************************** % the following sizes were used on the first two papers \magnification\magstep0 \hsize12.1truecm\vsize18.6truecm \hoffset.8truein \voffset.5truein % the following sizes are used subsequently %\magnification\magstephalf %\hsize6.5truein\vsize8.6truein %\voffset.5truein % Do we need to set the size so that it looks ok in A4 and Letterhead? %********************** first page ************************* \def\title#1{\toneormore#1||||:} %% If overlong, use || to indicate linebreaks \def\titexp#1#2{\hbox{{\titlefont #1} \kern-.25em% \raise .90ex \hbox{\twelverm #2}}\/} %% Use to create superscripts in the title \def\titsub#1#2{\hbox{{\titlefont #1} \kern-.25em% \lower .60ex \hbox{\twelverm #2}}\/} %% Use to create subscripts in the title \def\author#1{\bigskip\bigskip\aoneormore#1||||:\smallskip\centerline{\updated}} %% If overlong, use || to indicate linebreaks % \let\ninepoint\empty \def\abstract#1{\bigskip\bigskip\medskip% {\ninepoint \narrower{\bf Abstract.~}\rm#1\smallskip MSC: \mscnumbers\ifx\keywords\empty\else\smallskip Keywords: \keywords\fi\bigskip \printtochere}\starttoc\bigskip} \def\toneormore#1||#2||#3:{\centerline{\titlefont #1}% \def\next{#2}\ifx\next\empty\else\medskip\toneormore#2||#3:\fi} \def\aoneormore#1||#2||#3:{\centerline{\twelverm #1}% \def\next{#2}\ifx\next\empty\else\smallskip\aoneormore#2||#3:\fi} \newwrite\toc\def\tocone{0}\def\tochalf{.5}\def\toctwo{1} % \newtoks\writestuff% to avoid expansion of macros during writing, \countdef\counter=255 % the next macro is from the \TeX-book \def\diamondleaders{\global\advance\counter by 1 \ifodd\counter \kern-10pt \fi \leaders\hbox to 15pt{\ifodd\counter \kern13pt \else\kern3pt \fi .\hss}} \newdimen\lextent \def\printtochere{\immediate\closeout\toc\relax% \begingroup \def\\##1. ##2. {\setbox1=\hbox{##1}\ifnum\wd1>\lextent\lextent\wd1\fi} \lextent0pt\inputifthere{\jobname.toc}\advance\lextent by 2em\relax \def\\##1. ##2. {\centerline{\hbox to \lextent{\rm##1\def\next{##2}% \ifx\next\empty\else\diamondleaders\fi\hfil\hbox to 2em{\hss##2}}}} \inputifthere{\jobname.toc}\endgroup} \def\starttoc{\immediate\openout\toc=\jobname.toc} % \def\nexttoc#1{\immediate\write\toc{#1}} \def\nexttoc#1{{\let\folio=0\edef\next{\write\toc{#1}}\next}} % this is the tocline used originally %\def\tocline#1#2#3{\nexttoc{\line{\hskip\parindent\noexpand\noexpand\noexpand\rm\hskip#2truecm #1\hfill#3\hskip\parindent}}} % this is the tocline used subsequently \def\tocline#1#2#3{\nexttoc{\noexpand\noexpand\noexpand\\\hskip#2truecm #1. #3. }} \def\footnoterule{\kern -3pt \hrule width 0truein \kern 2.6pt} %\def\leftheadline{\ifnum\pageno=\count100 \hfill% % \else\rm\folio\hfil\it\shortauthor\fi} %\def\rightheadline{\ifnum\pageno=\count100 \hfill% % \else\it\shorttitle\hfil\rm\folio\fi} \def\leftheadline{\ifnum\pageno=\count100 \hfill% \else\hfil\it\shortauthor\hfil\llap{\rm\folio}\fi} \def\rightheadline{\ifnum\pageno=\count100 \hfill% \else\hfil\it\shorttitle\hfil\llap{\rm\folio}\fi} \nopagenumbers \headline{\ifodd\pageno\rightheadline \else\leftheadline\fi} \footline{\hfil} \null\vskip 18pt \centerline{} \pageno=\count100 \count102=\count100 \advance\count102 by -1 \advance\count102 by \count101 %******************* footnote on first page ********** \def\copyright{\hbox{{\twelverm o}\kern-.61em\raise .46ex\hbox{\fiverm c}}} %% plain TeX's \copyright does not adjust nicely to smaller fonts \insert\footins{\sixrm \medskip \baselineskip 8pt \leftline{Surveys in Approximation Theory \hfill {\ninerm \the\pageno}} \leftline{Volume 1, 2005. pp.~\the\pageno--\the\count102.} \leftline{Copyright \copyright\ 2005 Surveys in Approximation Theory.} \leftline{ISSN 1555-578X} \leftline{All rights of reproduction in any form reserved.} \smallskip \par\allowbreak} %********************** sections *************************** \def\sect#1{\startsect\edef\showsectno{\the\sectionno}\let\tocindent\tocone% \soneormore#1||||:\relax\medskip\noindent\ignorespaces} %% DEFINE SECTION HEADING %% if overlong, use || to introduce line breaks \def\soneormore#1||#2||#3:{% \leftline{\bf\showsectno\hskip2em #1} \def\next{#2}% \ifx\next\empty\puttocline{\showsectno\ \ #1}{\folio}% \else\puttocline{\showsectno\ \ #1}{}\let\showsectno\skipsectno\let\tocindent\tochalf\soneormore#2||#3:\fi} \def\puttocline#1#2{\tocline{#1}{\tocindent}{#2}} \def\skipsectno{\setbox0=\hbox{\the\sectionno}\hskip\wd0} \def\subsect#1{\formal{#1.}\let\tocindent\toctwo\puttocline{#1}{\folio}} \def\formal#1{\bigskip{\bf #1}\hskip1em} \def\fsubsect#1{\vskip-\baselineskip\subsect{#1}} %% USE in place of \subsect if it immediately follows \sect \newcount\sectionno\sectionno0 \def\presect{\the\sectionno.} \newcount\subsectionno \def\startsect{\ifx\empty\presect\else\restartnums\fi% \subsectionno0\global\advance\sectionno by 1\relax \goodbreak\bigskip\smallskip} \def\startsubsect{\global\advance\subsectionno by 1\goodbreak\bigskip} %********************** FIGURE MACROS *********************** \def\placefig#1#2{\smallskip\centerline{\epsfxsize=#2 truecm \epsfbox{\figsource #1}}\smallskip} \def\figcaption#1{\smallskip{\foneormore#1||||:}\bigskip} \def\figinbox#1(#2,#3)#4#5{\centerline{\vbox{\gridbox#2/#3/{ \ifshowfigname\point(0,0){#1}\fi \point(0,0){\epsfxsize=#4truecm \epsfbox{\figsource #1}}#5}}}} %% #1 = postscript file name %% #2 = depth of grid box (in truecm) (need not be an integer) %% #3 = width of grid box (in truecm) (need not be an integer) %% #4 = width (in truecm) to which the figure is to be scaled %% #5 = labels to be placed onto the figure; see explanation for #3 % of \gridbox in next section %% Turn off the grid by putting the command \showgridfalse anywhere before %% the \figinbox command. \input epsf \def\figsource{} \newif\ifshowfigname \def\foneormore#1||#2||#3:{\centerline{\ninepoint\rm #1}% \def\next{#2}\ifx\next\empty\else\vskip0pt\foneormore#2||#3:\fi} %********************** PRECISE PLACEMENT ******************* \def\gridbox#1/#2/#3{ \vbox to #1\gridunits{#3 \ifshowgrid\tickcount=0 \loop\cgridw% \vbox to 0pt{\kern\tickcount \gridunits\hrule width#2\gridunits height\gridwidth\vss} \nointerlineskip \advance\tickcount by \tickskip \ifdim\tickcount pt<#1pt\repeat % Note: #1, #2 need not be integers \hbox to 0pt{\tickcount=0\hbox to 0pt{\tick#1/\hss}\advance\tickcount by \tickskip% \loop\ifdim\tickcount pt<#2pt\nexttick\tickskip#1/\advance\tickcount by \tickskip \repeat\hss} \else \vbox to 0pt{\hrule width#2\gridunits height0pt\vss} \fi\vfil}\vfil} %% #1 = depth of grid (in truecm) (need not be an integer) %% #2 = width of grid (in truecm) (need not be an integer) %% #3 = zero or more statements of the form \ppointij(d,r){...} % which causes the box containing the material ... to be placed % in such a way that its ij-point is d truecm down and r truecm % right from the upper left corner of the grid. % Both i and j must be 0, 1, or 2, with 0 and 2 denoting the extremes % and 1 denoting the middle. E.g., 10 is the middle of the left % edge, while 22 is the lower right corner. %% Turn off the grid by putting the command \showgridfalse anywhere before %% the \gridbox command. %% TeX should be in vertical mode when calling on \gridbox. E.g., %% \centerline{\vbox{\gridbox3/4.4/{\ppoint11(1,1){$0$}\ppoint21(2,1){$0$}}}} %% would generate a centered gridbox and print a zero centered at the (1,1) %% point of that box and also one centered atop the (2,1) point. \def\ppoint#1#2(#3,#4)#5{\setbox0=\hbox{#5} \dimen0=\ht0\advance\dimen0 by\dp0\divide\dimen0 by-2 \multiply\dimen0 by#1\advance\dimen0 by#3\gridunits \dimen1=\wd0\divide\dimen1 by-2\multiply\dimen1 by#2 \advance\dimen1 by#4\gridunits\dpoint(\dimen0,\dimen1){#5}} %% #1#2 together specify which part of the box \hbox{#5} is to be placed %% at the gridpoint(#3,#4), with %% #1 = 0 (upper end), 1 (middle), 2 (lower end) %% #2 = 0 (left end), 1 (middle), 2 (right end) %% #3 = distance down (in truecm) %% #4 = distance right (in truecm) %% #5 = material to be placed \def\gridunits{truecm}\newcount\tickskip\tickskip1\newcount\majortick\majortick5 \def\point(#1,#2)#3{\dpoint(#1\gridunits,#2\gridunits){#3}} \def\dpoint(#1,#2)#3{\vbox to 0pt{\kern#1 \hbox{\kern#2{#3}}\vss}\nointerlineskip} \newcount\rmndr % this macro returns the remainder of #1 mod #2 \def\rem#1#2{\rmndr=#1{}\divide\rmndr by#2{}% \multiply\rmndr by-#2{}\advance\rmndr by #1} \def\cgridw{\gridwidth\finegridw{}\rem\tickcount\majortick% \ifnum\rmndr=0{}\gridwidth\roughgridw\fi} %% every \majortick line, use double-thick line. \def\tick#1/{\cgridw\vrule width\gridwidth height0pt depth#1\gridunits} \def\nexttick#1#2/{\hbox to#1\gridunits{\hfil\tick#2/}} \newcount\tickcount \newdimen\finegridw\finegridw0.4pt\newdimen\roughgridw\roughgridw1.6pt \newdimen\gridwidth \newif\ifshowgrid \showgridtrue %********************** TABLE MACROS ************************ \def\tabcap#1#2#3{\null\vskip 1pt \vbox to #3in {\vfill} {\ninepoint \centerline{{\bf Tab.~#1.} #2.}}} %% #1 = table number %% #2 = table caption %% #3 = number of inches of space (1 inch = 2.5 cm) \def\tabcaplong#1#2#3{\null\vskip 1pt \vskip #3in \ninepoint \centerline{\hbox{\noindent{\bf Tab.~#1.} \vtop{\hsize 4in \noin #2.\smallskip}}} } %% #1 = table number %% #2 = table caption %% #3 = number of inches of space (1 inch = 2.5 cm) %********************** AUTOMATIC SEQUENCING **************** \def\label#1{% \ifsamelabel\global\samelabelfalse\else \ifmmode\global\advance\eqnum by 1%%% label equations \else\global\advance\labelnum by 1%%% label anything else \fi\fi \edef\griff{label:#1}\edef\inhalt{\lastlabel}\definieres% \ifmmode\eqno(\inhalt)\else\inhalt\fi \ifdraft\ifmmode\rlap{\fiverm #1}\else\marginal{#1}\fi\fi} %% \label{...} increments the label or equation counter, also prints it, %% and makes up a label for it, so it can be referred to, using \recall{...}. %% If \draft was used earlier, the label ... will also appear in margins. \def\eqalignlabel#1{{\def\eqno{}\let\labelnum\eqnum\label{#1}}} %% for use inside an \eqalignno \def\labelplus#1#2{\def\labelsub{#2}\relax\label{#1}\def\labelsub{}} %% for adjoining something to the number \def\eqalignlabelplus#1#2{{\def\eqno{}\let\labelnum\eqnum\labelplus{#1}{#2}}} %% for use inside an \eqalignno \def\samenumber{\samelabeltrue} %% \samelabel suppresses the next incrementing of a counter \def\recall#1{\edef\griff{label:#1}\plazieres}%%% Cite numbered item \newif\ifsamelabel \def\labelsub{} \def\lastlabel{\presect\ifmmode\the\eqnum\else\the\labelnum\fi\labelsub} \def\nextlabel{{\ifmmode\advance\eqnum by 1\else\advance\labelnum by 1\fi\lastlabel}} %******************* set up counters ****************** \newcount\blackmarks\blackmarks0 \newcount\eqnum \newcount\labelnum \def\restartnums{\eqnum0\labelnum0} \def\singlecount{\let\labelnum\eqnum} %******************* set up numbering ***************** \newread\testfl \def\inputifthere#1{\immediate\openin\testfl=#1 \ifeof\testfl\message{(#1 does not yet exist)} \else\input#1\fi\closein\testfl} \inputifthere{\jobname.aux} \newwrite\aux \immediate\openout\aux=\jobname.aux \def\remember#1#2{\edef\inhalt{#1}\edef\griff{label:#2}\definieres} \def\plazieres{\expandafter\ifx\csname\griff\endcsname\relax% \xdef\esfehlt{\griff}\blackmark\else{\csname\griff\endcsname}\fi} \def\definieres{\expandafter\xdef\csname\griff\endcsname{\inhalt}% \def\blankkk{ }\expandafter\immediate\write\aux{% \string\expandafter\def\string\csname% \blankkk\griff\string\endcsname{\inhalt}}} \def\blackmark{\ifnum\blackmarks=0\global\blackmarks=1% \write16{============================================================}% \write16{Some forward reference is not yet defined. Re-TeX this file!}% \write16{============================================================}% \fi\immediate\write16{undefined forward reference: \esfehlt}% {\vrule height10pt width2pt depth2pt}\esfehlt% {\vrule height10pt width2pt depth2pt}} \let\showlabel\marginal \def\marginal#1{\strut\vadjust{\kern-\strutdepth% \vtop to \strutdepth{\baselineskip\strutdepth\vss\llap{\fiverm#1\ }\null}}} \def\strutdepth{\dp\strutbox} %********************** draft ******************************* \newif\ifdraft \newcount\hour\newcount\minutes \def\draft{\drafttrue \def\comment##1{{\bf comment: ##1}} \headline={\sevenrm \hfill\ifx\filenamed\undefined\jobname\else\filenamed\fi% (.tex) (as of \ifx\updated\undefined???\else\updated\fi) \TeX'ed at {\hour\time\divide\hour by 60{}% \minutes\hour\multiply\minutes by 60{}% \advance\time by -\minutes \the\hour:\ifnum\time<10{}0\fi\the\time\ on \today\hfill}} } \def\today{\number\day\space% \ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi% \space\number\year} %********************** acknowledgements ******************** \def\Acknowledgments{\goodbreak\bigskip\noindent{\bf Acknowledgments.\ }} %********************** REFERENCES ************************** \def\References{\goodbreak\bigskip\centerline{\bf References}% \tocline{\skipsectno\ \ References}{\tocone}{\folio}% \bigskip\frenchspacing} \def\bibitem{\smallskip\noindent} %******************* SAT style ************************ \gdef\formfirstauthor{\the\lastname, \the\firstname} \gdef\formnextauthor{, \the\firstname\the\lastname} \gdef\formotherauthor{ and \the\firstname\the\lastname} \gdef\formlastauthor{,\formotherauthor} \gdef\formB{\the\au\ [\yr] ``\the\ti'', \the\pb, \the\pl. \setcitelabel} \gdef\formD{\the\au\ [\yr] ``\the\ti'', dissertation, \the\pl. \setcitelabel} \gdef\formJ{\the\au\ [\yr] \the\ti, {\sl\the\jr}\ifx\vl\empty% \else\ {\bf\vl}\fi, \pp. \setcitelabel} \gdef\formP{\the\au\ [\yr] \the\ti, in {\sl\the\tit}, \getfirstchar\aut\ifx\firstchar\unknownx\else\the\aut, ed\edsop, \fi \getfirstchar\pub\ifx\firstchar\unknownx\else\the\pub, \fi \the\pl, \pp. \setcitelabel} \gdef\formR{\the\au\ [\yr] \the\ti\ifx\is\empty\else, \is\fi. \setcitelabel} %******************* needed tokens ******************** \newtoks\lastname \newtoks\firstname \newtoks\au \newtoks\aut \newtoks\ti \newtoks\tit \newtoks\pb \newtoks\pub \newtoks\pl \newtoks\jr \newtoks\rhlau %******************* supporting macros **************** \def\setcitelabel{\edef\griff{cit\rh}\edef\inhalt{\the\rhlau\ \yr}\definieres} \def\setcitelabel{} \def\getfirstchar#1{\edef\theword{\the#1}\expandafter\getit\theword:} \def\getit#1#2:{\def\firstchar{#1}} \def\unknownx{x}\def\questmark{?} \newif\ifonesofar \def\concat#1{\edef\audef{{#1}}\au=\audef} \def\decodeauthor#1, #2,#3;{\lastname={#1}\firstname={#2}% \concat{\formfirstauthor}\onesofartrue% \def\morerhlau{}% \def\next{#3}\ifx\next\empty\else\def\morerhlau{ et al.}\decodemoreauthor#3;\fi \edef\morerhlauu{{\the\lastname\morerhlau}}\rhlau=\morerhlauu} \def\decodemoreauthor#1, #2,#3;{\lastname={#1}\firstname={#2}% \def\next{#3}\ifx\next\empty\let\formaut=\formlastauthor% \ifonesofar\ifx\formotherauthor\undefined\else\let\formaut=\formotherauthor% \fi\fi\concat{\the\au\formaut}% \else\onesofarfalse\concat{\the\au\formnextauthor}\decodemoreauthor#3;\fi} \def\lookupp#1{{\global\aut={\vrule height15pt width15pt depth0pt}% \global\tit={{\bf the specified proceedings does not exist in our files}}% \xdef\edsop{}\global\pub={}\def#1{}\input proceed }} \def\refproc #1(#2; #3; {\decodeproc#2; \xdef\yr{#3}} \def\decodeproc#1), #2 (ed#3.),#4 (#5); {% \global\tit={#1}\global\aut={#2}\xdef\edsop{#3}\global \pub={#4}\global\pl={#5}} %******************* basic bib macros ***************** \def\refB #1; #2; #3 (#4); #5; {\decodeauthor#1,;% \ti={#2}\pb={#3}\pl={#4}\def\yr{#5}\bibitem\formB} \def\refD #1; #2; #3; #4; {\decodeauthor#1,;% \ti={#2}\pl={#3}\def\yr{#4}\bibitem\formD} \def\refJ #1; #2; #3; #4; #5; #6; {\decodeauthor#1,;% \ti={#2}\jr={#3}\def\vl{#4}\def\yr{#5}\def\pp{#6}\bibitem\formJ} \def\refP #1; #2; #3; #4; {\lookupp{#3}\decodeauthor#1,;% \ti={#2}\def\pp{#4}\bibitem\formP} \def\refQ #1; #2; (#3; #4; #5; {\decodeproc#3; \decodeauthor#1,;% \ti={#2}\def\yr{#4}\def\pp{#5}\bibitem\formP} \def\refR #1; #2; #3; #4; {\decodeauthor#1,;% \ti={#2}\def\is{#3}\def\yr{#4}\bibitem\formR} \let\refX\bibitem .