diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-write.html')
-rw-r--r-- | Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-write.html | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-write.html b/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-write.html new file mode 100644 index 00000000000..68fc5cc9dd7 --- /dev/null +++ b/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-write.html @@ -0,0 +1,41 @@ +<head> +<title>UK TeX FAQ -- question label write</title> +</head><body> +<h3>Writing (text) files from TeX</h3> +<p/>TeX allows you to write to output files from within your document. +The facility is handy in many circumstances, but it is vital for +several of the things LaTeX (and indeed almost any higher-level +TeX-based macro package) does for you. +<p/>The basic uses of writing to an external file are “obvious” — +remembering titles of sections for a table of contents, remembering +label names and corresponding section or figure numbers, all for a +later run of your document. However, the “non-obvious” thing is +easy to forget: that page numbers, in TeX, are slippery beasts, and +have to be captured with some care. The trick is that <code>\</code><code>write</code> +operations are only executed as the page is sent to the DVI +or PDF file. Thus, if you arrange that your page-number macro +(<code>\</code><code>thepage</code>, in LaTeX) is not expanded until the page is +written, then the number written is correct, since that time is where +TeX guarantees the page number tallies with the page being sent +out. +<p/>Now, there are times when you want to write something straight away: +for example, to interact with the user. TeX captures that +requirement, too, with the primitive <code>\</code><code>immediate</code>: +<blockquote> +<pre> +\immediate\write\terminal{I'm waiting...} +</pre> +</blockquote><p> +writes a “computer-irritates-user” message, to the terminal. +<p/>Which brings us to the reason for that <code>\</code><code>terminal</code>. TeX can +“<code>\</code><code>write</code>” up to 16 streams simultaneously, and that argument to +<code>\</code><code>write</code> says which is to be used. Macro packages provide the +means of allocating streams for your use: Plain TeX provides a macro +<code>\</code><code>newwrite</code><code>\</code><code>streamname</code>, which sets <code>\</code><code>streamname</code> as +the stream number. In fact, <code>\</code><code>terminal</code> (or its equivalent) is the +first output stream ever set up (in most macro packages): it is never +attached to a file, and if TeX is asked to write to <em>any</em> +stream that isn’t attached to a file it will send the output to the +terminal (and the log). +<p/><p>This question on the Web: <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=write">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=write</a> +</body> |