Henning Hraban Ramm wrote:
Am 2005-10-18 um 10:23 schrieb Peter Rolf:
I tried to write a macro for a TABLE line:
\def\TestCmd{\dodoubleempty\doTestCmd} \def\doTestCmd[#1][#2]#3{\bTR\bTD #3 \iffirstargument\hfill (#1)\fi \eTD \bTD \ifsecondargument 3: #2 and #3 \else 2: only #3 \fi \eTD\eTR }
But it never goes into "else" (if #2 is empty, I get "3: and #3")! And it's only with the table commands around. Why? What can I do?
the numbering is not bound to the parameter number; it's just a counter. calling the macro with two arguments -> \iffirstargument is true \ifsecondargument is true \ifthirdargument is false
But why *does it work* without the TABLE commands?? If it would be true (or at least the reason for my problem) what you wrote, the following should work:
\def\TestCmd{\dodoubleempty\doTestCmd} \def\doTestCmd[#1][#2]#3{\bTR\bTD #3 \ifsecondargument \iffirstargument\hfill (#1)\fi \eTD \bTD 3(#1.#2.#3) \else \iffirstargument\hfill (#1)\fi \eTD \bTD 2(#1/#2/#3) \fi \eTD\eTR }
But there I get only a ! Incomplete \iftrue; all text was ignored after line 63. <inserted text> \fi
The problem is, that the analysis of the \if?argument is not working
here. You always get three arguments inside the TABLE.
The following example shows this in the first three rows. If you use
\doifelsenothing{TEST}
{NOTHING part}
{SOMETHING part}%
it works (last three rows). Dunno why ;)
Greetings,
Peter
-----
% interface=en output=pdftex
% Time-stamp:
Grüßlis vom Hraban! --- http://www.fiee.net/texnique/ http://contextgarden.net http://www.cacert.org (I'm an assurer)
_______________________________________________ ntg-context mailing list ntg-context@ntg.nl http://www.ntg.nl/mailman/listinfo/ntg-context