[NTG-context] Macro in a macro with optional argument

Wolfgang Schuster wolfgang.schuster.lists at gmail.com
Tue Feb 12 17:38:39 CET 2019


Pierre-Francois Bonnefoi schrieb am 11.02.19 um 12:35:
> Hello,
> 
> I try to define automatically some macros to include cliparts in my TikZ drawings and I've defined the following macro :
> 
> \def\clipart#1#2{%
> \expandafter\def\csname tk#1\endcsname{\dosingleempty\expandafter\csname dotk#1\endcsname}%
> \expandafter\def\csname dotk#1\endcsname[##1]{\iffirstargument\image{cisco/#1}{##1}\else\image{cisco/#1}{#2}\fi} }
> 
> \clipart{pc}{.8} % defines the macro \tkpc to include the picture "cisco/pc"
> 
> The issue arises when I use the newly defined \tkpc : the argument is not optional and I have to put \kpc[.5] for example.
> To add insult to injury, the value passed in argument is ignored also : \iffirtargument return always false...
> 
> Do you have any idea ?

\define[2]\clipart
   {\setuvalue{tk#1}{\dotripleempty\doclipart[#1][#2]}}

% \def\doclipart[#1][#2][#3]%
%   {\image{cisco/#1}{\ifthirdargument#3\else#2\fi}}

\def\doclipart[#1][#2][#3]%
   {\ifthirdargument
      \image{cisco/#1}{#3}%
    \else
      \image{cisco/#1}{#2}%
    \fi}

Wolfgang



More information about the ntg-context mailing list