Changes

Jump to navigation Jump to search
1,451 bytes added ,  21:58, 29 March 2009
Implementation in ConTeXt
LaTeX provides a <code>filecontent</code> environment to embed text in your document
which is written to a external document when your process it. The filename is given with
the argument for the environment.

You could define a environment for the same effect with the buffer mechanism, the code
for such a environment is:

<texcode>
\unprotect

\def\startfilecontents
{\begingroup
\protectbuffersfalse
\dostartfilecontents}

\def\dostartfilecontents[#1]%
{\beforesplitstring#1\at.\to\filename
\aftersplitstring #1\at.\to\extension
\let\f!temporaryextension\extension
\dostartbuffer[\filename][startfilecontents][stopfilecontents]}

\def\stopfilecontents
{\doifmode{mkiv}{\savebuffer[\filename]\ctxlua{file.copy("\jobname-\filename.tmp","\filename.\f!temporaryextension")}}%
\endgroup}

\protect
</texcode>

You could use this environment in your document in the following way.

<texcode>
\startfilecontents[song.txt]
If I could choose my paradise,
And please myself with choice of bliss,
Then I would have your soft blue eyes
And rosy little mouth to kiss!
Your lips, as smooth and tender, child,
As rose-leaves in a coppice wild.

If fate bade choose some sweet unrest,
To weave my troubled life a snare,
Then I would say "her maiden breast
And golden ripple of her hair;"
And weep amid those tresses, child,
Contented to be thus beguiled.

(Thomas Asche - No and Yes)
\stopfilecontents
</texcode>
gardener
110

edits

Navigation menu