Peter Rolf wrote:
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.
I did not test but my opinion is: - \if*argument is set in the \do*empty - \bTR, \eTR has optional params so they also use \do*empty - using test \if*argument AFTER \bTR, \bTD, ... is related to the \bTR, ... number of arguments not to the \TestCmd. vit
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:
% \def\TestCmd{\dodoubleempty\doTestCmd} \def\doTestCmd[#1][#2]#3{\bTR\bTD #3% \ifsecondargument \hfill (#1) 3: #2 and #3 \else \iffirstargument \hfill (#1) 2: #3 \else 1: #3 \fi \fi \eTD\eTR }
\def\TestCmdA{\dodoubleempty\doTestCmdA} \def\doTestCmdA[#1][#2]#3{\bTR\bTD #3% \doifelsenothing{#2} {\doifelsenothing{#1} {1: #3} {\hfill (#1) 2: #3}% } {\doifelsenothing{#1} {2: #2 and #3} {\hfill (#1) 3: #2 and #3}% }% \eTD\eTR }
\starttext
\bTABLE
\TestCmd{C} \TestCmd[A]{C} \TestCmd[A][B]{C}
\TestCmdA{Z} \TestCmdA[Y]{Z} \TestCmdA[X][Y]{Z}
\eTABLE
\stoptext
%%% Local Variables: %%% mode: context %%% TeX-master: "" %%% End: -----
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
_______________________________________________ ntg-context mailing list ntg-context@ntg.nl http://www.ntg.nl/mailman/listinfo/ntg-context
-- ======================================================= Ing. Vít Zýka, Ph.D. TYPOkvítek database publishing databazove publikovani data maintaining and typesetting in typographic quality priprava dat a jejich sazba v typograficke kvalite tel.: (+420) 777 198 189 www: http://typokvitek.com =======================================================