On Sun, 30 Jul 2017, Henning Hraban Ramm wrote: > Am 2017-07-29 um 00:57 schrieb Aditya Mahajan : > >> On Fri, 28 Jul 2017, Henning Hraban Ramm wrote: >> >>> Ahoi again, >>> >>> I’m preparing some ConTeXt docs with a lot of examples and would like to reproduce what we have in the wiki as >>> >>> >>> ... >>> >>> >>> i.e. sourcecode beside the result. >>> >>> Often the shown source is exactly what I want to show, in other cases I need some additional setup that I don’t want to show. >>> >>> Which approach would you suggest? Combinations? >> >> \startbuffer[example-1] >> .... >> \stopbuffer >> >> >> \placesidebyside >> {\typebuffer[example-1]} >> {\getbuffer[setups, example-1]} > > > Thank you again, that should be enough for most of my small examples. > I guess I never heard of or forgot about \placesidebyside as well as \placeontopofeachother. > > But I’d like to show a lot of similar examples to explain several options. > Therefore, if I’d like to simplify my code, but this doesn’t work: > > \def\CodeExample#1{% > \startbuffer[zB] > #1 > \stopbuffer > \typebuffer[zB] > \getbuffer[zB] > } > > \CodeExample{\framed[frame=off,leftframe=on,rulethickness=1em,framecolor=blue]{Klotz am Bein}} You can't do that with buffers. If you need to define your own macros that behave like buffers, you need to use \grabbufferdata (see buff-ini.mkiv). But in this case, there is a simpler solution: \defineframed [CodeExampleFramed] [ frame=off, width=0.5\textwidth, align=normal, ] \definebuffer [CodeExample] \define\stopCodeExample {\placesidebyside {\CodeExampleFramed{\typeCodeExample}} {\CodeExampleFramed{\getCodeExample}}} \starttext \startCodeExample \framed [ frame=off, leftframe=on, rulethickness=1em, framecolor=blue, ]{Klotz am Bein} \stopCodeExample \stoptext