Difference between revisions of "Filecontents"
Jump to navigation
Jump to search
m |
m |
||
Line 75: | Line 75: | ||
\stopfilecontents | \stopfilecontents | ||
</texcode> | </texcode> | ||
+ | |||
+ | [[Category:Tools]] |
Latest revision as of 14:18, 8 June 2020
Basically, to embed text in your document (tex input file) which is written to an external document when you process it, you can use buffers:
\startbuffer[x] x \stopbuffer \savebuffer[x][temp.log]
The second argument is optional and when omitted the buffer will be saved as jobname-<buffername>.tmp
.
Written in 2010
LaTeX provides a filecontent
environment to embed text in your document
which is written to an external document when you process it. The filename is given with
the argument for the environment.
You could define an environment for the same effect with the buffer mechanism, the code for such an environment is:
\unprotect \definemessageconstant {filecontents} \startinterface all \setinterfacemessage{filecontents}{title}{filecontents} \setinterfacemessage{filecontents}{1} {Overwriting file --} \setinterfacemessage{filecontents}{2} {Writing file --} \stopinterface \def\startfilecontents {\begingroup \protectbuffersfalse \dostartfilecontents} \def\dostartfilecontents[#1]% {\doiffileexistselse{#1} {\showmessage\m!filecontents{1}{#1}} {\showmessage\m!filecontents{2}{#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
You could use this environment in your document in the following way.
\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