From: Philipp Gesang <gesang@stud.uni-heidelberg.de>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: need help with macro
Date: Sun, 23 Sep 2012 16:28:05 +0200 [thread overview]
Message-ID: <20120923142805.GB29608@phlegethon.router_intern> (raw)
In-Reply-To: <D1CF2A3C-5D1B-4691-BC32-22365AE91AC4@gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 2280 bytes --]
···<date: 2012-09-23, Sunday>···<from: Wolfgang Schuster>···
> It’s a expansion problem, you can either expand the content in the definition of \mogrify (as seen below)
> or you make the \mogrify command unexpanded and you expand the content of the \wwparameter
> (i.e. \doifsomething{…}{\normalexpanded{\mogrify{…}}})
Thanks a lot, I rewrote my macros according to your the first
suggestion and it works like a breeze.
Best regards
Philipp
>
> \unprotect
>
> \def\mogrify_scan#first#second#third#rest\relax
> {\def\m_mogrify_three{#first#second#third}%
> \def\m_mogrify_rest {#rest}}
>
> \def\mogrify#content%
> {\begingroup
> \edef\m_mogrify_content{#content}%
> \expandafter\mogrify_scan\m_mogrify_content\relax
> \colored [red]{\m_mogrify_three}%
> \colored[green]{\m_mogrify_rest }%
> \endgraf
> \endgroup}
>
> \installnamespace {ww}
> \installcommandhandler \????ww {ww} \????ww
>
> \appendtoks
> \setuevalue{\currentww}{\wont_work[\currentww]}
> \to \everydefineww
>
> \unexpanded\def\wont_work[#id]%
> {\edef\currentww{#id}%
> \dosingleempty\wont_work_indeed}
>
> \def\wont_work_indeed[#setups]#content%
> {\iffirstargument\setupcurrentww[#setups]\fi
> \doifsomething{\wwparameter{param}}{\mogrify{\wwparameter{param}}}%
> \endgraf
> \framed{#content}}
>
> \defineww[wontwork]
>
> \protect
>
> \starttext
>
> \mogrify{foobar}\par%% the macro does work in isolation
>
> \wontwork[param=whatever]{will it work?}
> \wontwork[param=] {this, however, does work}
>
> \stoptext
>
> Wolfgang
>
> ___________________________________________________________________________________
> 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://tex.aanhet.net
> archive : http://foundry.supelec.fr/projects/contextrev/
> wiki : http://contextgarden.net
> ___________________________________________________________________________________
--
() ascii ribbon campaign - against html e-mail
/\ www.asciiribbon.org - against proprietary attachments
[-- Attachment #1.2: Type: application/pgp-signature, Size: 198 bytes --]
[-- Attachment #2: Type: text/plain, Size: 485 bytes --]
___________________________________________________________________________________
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://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
prev parent reply other threads:[~2012-09-23 14:28 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-23 13:33 Philipp Gesang
2012-09-23 14:00 ` Wolfgang Schuster
2012-09-23 14:28 ` Philipp Gesang [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120923142805.GB29608@phlegethon.router_intern \
--to=gesang@stud.uni-heidelberg.de \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).