How to use a variable in a macro agrument
I have a need to use a logo graphics file several times in a document. I somethings need to update to a newer graphics file. I only want to make one change to the original variable value definition. I've tried using \define.. but it's not working for me. Here is my MWE: %%%%%%%% \define[]\logofile{an_image_file.png} % Here defining the variable with the filename to use. \definelayer[stillimage] \setlayer[stillimage]{\externalfigure[\logofile]} % Here trying to use the \logofile macro. \setupbackgrounds[page][background=stillimage] \starttext \input knuth \stoptext What's the accepted way to do this or are macro arguments not allowable? Thanks
May be \useexternalfigure is your friend instead of your \define[]\logofile{}, which allows you to give a symbolic name of the logo-file. This symbolic name you can use then in the setlayer construct. Willi
On 18 Dec 2021, at 10:52, skyhorse--- via ntg-context
wrote: I have a need to use a logo graphics file several times in a document. I somethings need to update to a newer graphics file. I only want to make one change to the original variable value definition.
I've tried using \define.. but it's not working for me. Here is my MWE:
%%%%%%%%
\define[]\logofile{an_image_file.png} % Here defining the variable with the filename to use.
\definelayer[stillimage] \setlayer[stillimage]{\externalfigure[\logofile]} % Here trying to use the \logofile macro. \setupbackgrounds[page][background=stillimage]
\starttext \input knuth \stoptext
What's the accepted way to do this or are macro arguments not allowable?
Thanks ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
skyhorse--- via ntg-context schrieb am 18.12.2021 um 10:52:
I have a need to use a logo graphics file several times in a document. I somethings need to update to a newer graphics file. I only want to make one change to the original variable value definition.
I've tried using \define.. but it's not working for me. Here is my MWE:
%%%%%%%%
\define[]\logofile{an_image_file.png} % Here defining the variable with the filename to use.
\definelayer[stillimage] \setlayer[stillimage]{\externalfigure[\logofile]} % Here trying to use the \logofile macro. \setupbackgrounds[page][background=stillimage]
\starttext \input knuth \stoptext
What's the accepted way to do this or are macro arguments not allowable?
To fix your example you have to use the \defineexpandable command to create the command. Another method which was already suggested by Willi is to use the \useexternalfigure command to create a reference to your graphic. A alternative to \defineexpandable is the \setvariables command. \setupexternalfigures [location=default] \defineexpandable\MillFigure{mill.png} \useexternalfigure[CowFigure][cow.pdf] \setvariables[figures][hacker=hacker.jpg] \starttext \externalfigure[\MillFigure] \externalfigure[CowFigure] \externalfigure[\getvariable{figures}{hacker}] \stoptext Wolfgang
participants (3)
-
skyhorse@gmx.us
-
Willi Egger
-
Wolfgang Schuster