I see. Thanks for the explanation. So the following works: ------------------------------- \unprotect \setvalue{startNotes}% {\global\settrue\c_page_comment_enabled \grabbufferdatadirect{pagecomment}{startpagecomment}{stopNotes}} \protect \def\stopNotes{} ------------------------------ What does the second argument to \grabbufferdatadirect mean? Nothing changes when I modify that. The point of redefining the pagecomment environment for me was to style it a bit: add \righttoleft at the beginning, and surround the content in startstopnarrower. How can I inject prepend/append to a buffer's content? The solution I can think of is to use a different buffer "pagecomment_internal" in the above definition, and then build buffer "pagecomment" using that. Thanks, ~MHB On Sat, Apr 27, 2019 at 1:24 AM Wolfgang Schuster < wolfgang.schuster.lists@gmail.com> wrote:
Mohammad Hossein Bateni schrieb am 27.04.2019 um 05:16:
Hi,
Look at the following MWE:
\setuppagecomment[state=start,location=right] %\definestartstop[Notes] %[before=\startpagecomment,after=\stoppagecomment] \def\startNotes{\startpagecomment} \def\stopNotes{\stoppagecomment}
\starttext \input knuth \startpagecomment Hello \stoppagecomment \page \input tufte \startNotes Testing \stopNotes \stoptext
This snippet does not compile. Page comments work when I use the commands \startpagecomment and \stoppagecomment directly (like in the first page), but when I invoke via macros (as in the second page), ConTeXt produces errors.
What is wrong there?
The pagecomment environment uses the buffer mechanism to store the content of the environment but a limitation of buffers is that you can't put them into other commands because the scan for a certain delimiter, e.g. \stoppagecomment.
Wolfgang