Buffers in LuaTeX

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Buffers are named chunks of text, saved by ConTeXt to be retrieved by the user later. They are usually defined as follows:

% Start a buffer with a custom name
\startbuffer[Marie]
This is the text in the buffer 'Marie'
\stopbuffer

% Define the \start...\stopPierre environment
\def\startPierre
{\dostartbuffer[Pierre][startPierre][stopPierre]}

% Give \stopPierre some meaning if you want to do something with the buffer right away.
%\def\stopPierre
%   {\getbuffer[Pierre]}}

\startPierre
This is the text in the buffer 'Pierre'.
\stopPierre
\getbuffer[Pierre] % Print typeset contents

\startPierre
Now this is the text in the buffer 'Pierre', instead.
\stopPierre
\typebuffer[Pierre] % Print verbatim contents


The LuaTeX buffers.* commands

These commands were all found in the source code: buff-ini.lua

• buffers.getcontent(b): Get the contents of the buffer b, or the empty string if the buffer does not exist.
• buffers.raw(b): Synonym for buffers.getcontent(b).
• buffers.getlines(b): Equivalent to splitlines(buffers.getcontent(b)).
• buffers.erase(b): Delete the buffer b (not just its contents).
• buffers.assign(b, text, catcodes): Set the contents of buffer b to text, using catcodetable catcodes
• buffers.append(b, text): Append text to buffer b.
• buffers.exists(b): Returns the name of the buffer if it exists, or else nil.
• buffers.collectcontent(names, seperator): Returns the contents of the buffers in names, seperated by seperator ('\n' by default). Names can be either a table, or a comma-seperated string (surrounding braces are automatically removed — see parsers.settings_to_array in util-prs.lua.