summaryrefslogtreecommitdiff
path: root/graphics/pgf/base/doc/text-en/pgfmanual-en-base-internalregisters.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/base/doc/text-en/pgfmanual-en-base-internalregisters.tex')
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-base-internalregisters.tex127
1 files changed, 0 insertions, 127 deletions
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-base-internalregisters.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-base-internalregisters.tex
deleted file mode 100644
index fe28a3c5e8..0000000000
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-base-internalregisters.tex
+++ /dev/null
@@ -1,127 +0,0 @@
-% Copyright 2018 by Christian Feuersaenger
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-% See the file doc/generic/pgf/licenses/LICENSE for more details.
-
-
-\section{Adding libraries to \pgfname: temporary registers}
-\label{section-internal-registers}
-
-This section is intended for those who like to write libraries to extend
-\pgfname. Of course, this requires a good deal of knowledge about
-\TeX-programming and the structure of the \pgfname\ basic layer. Besides, one
-will encounter the need of temporary variables and, especially, temporary \TeX\
-registers. This section describes how to use a set of pre-allocated temporary
-registers of the basic layer without needing to allocate more of them.
-
-A part of these internals are already mentioned in
-section~\ref{section-internal-pointcmds}, but the basic layer provides more
-temporaries than |\pgf@x| and |\pgf@y|.
-
-\begin{internallist}[dimen register]{\pgf@x,\pgf@y}
- These registers are used to process point coordinates in the basic layer of
- \pgfname, see section~\ref{section-internal-pointcmds}. After a
- |\pgfpoint|$\dotsc$ command, they contain the final $x$ and $y$ coordinate,
- respectively.
-
- The values of |\pgf@x| and |\pgf@y| are set \emph{globally} in contrast to
- other available \pgfname\ registers. You should never assume anything about
- their value unless the context defines them explicitly.
-
- Please prefer the |\pgf@xa|, |\pgf@xb|, $\dotsc$ registers for temporary
- dimen registers unless you are writing point coordinate commands.
-\end{internallist}
-
-\begin{internallist}[dimen register]{
- \pgf@xa,
- \pgf@xb,
- \pgf@xc,
- \pgf@ya,
- \pgf@yb,
- \pgf@yc%
-}
- Temporary registers for \TeX\ dimensions which can be modified freely. Just
- make sure changes occur only within \TeX\ groups.
-
- \paragraph{Attention:}
- %
- \pgfname\ uses these registers to perform path operations. For reasons of
- efficiency, path commands do not always guard them. As a consequence, the
- code
- %
-\begin{codeexample}[code only]
-\pgfpointadd{\pgfpoint{\pgf@xa}{\pgf@ya}}{\pgfpoint{\pgf@xb}{\pgf@yb}}
-\end{codeexample}
- %
- \noindent may fail: Inside |\pgfpointadd|, the |\pgf@xa| and friend
- registers might be modified. In particular, it might happen that |\pgf@xb|
- is changed before |\pgfpoint{\pgf@xb}{\pgf@yb}| is evaluated. The right
- thing to do would be to first expand everything using |\edef| and process
- the values afterwards, resulting in unnecessary expensive operations. Of
- course, one can avoid this by simply looking into the source code of
- |\pgfpointadd| to see which registers are used.
-\end{internallist}
-
-\begin{internallist}[dimen register]{\pgfutil@tempdima,\pgfutil@tempdimb}
- Further multi-purpose temporary dimen registers. For \LaTeX, these
- registers are already allocated as |\@tempdima| and |\@tempdimb| and are
- simply |\let| to the |\pgfutil@|$\dotsc$ names.
-\end{internallist}
-
-\begin{internallist}[count register]{
- \c@pgf@counta,
- \c@pgf@countb,
- \c@pgf@countc,
- \c@pgf@countd%
-}
- These multiple-purpose count registers are used throughout \pgfname\ to
- perform integer computations. Feel free to use them as well, just make sure
- changes are scoped by local \TeX\ groups.
-\end{internallist}
-
-\begin{internallist}[openout handle]{\w@pgf@writea}
- An |\openout| handle which is used to generate complete output files within
- locally scoped parts of \pgfname\ (for example, to interact with
- |gnuplot|). You should always use |\immediate| in front of output
- operations involving |\w@pgf@writea| and you should always close the file
- before returning from your code.
- %
-\begin{codeexample}[code only]
-\immediate\openout\w@pgf@writea=myfile.dat
-\immediate\write\w@pgf@writea{...}%
-\immediate\write\w@pgf@writea{...}%
-\immediate\closeout\w@pgf@writea%
-\end{codeexample}
- %
-\end{internallist}
-
-\begin{internallist}[openin handle]{\r@pgf@reada}
- An |\openin| handle which is used to read files within locally scoped parts
- of \pgfname, for example to check if a file exists or to read data files.
- You should always use |\immediate| in front of output operations involving
- |\r@pgf@writea| and you should always close the file before returning from
- your code.
- %
-\begin{codeexample}[code only]
-\immediate\openin\r@pgf@reada=myfile.dat
-% do something with \macro
-\ifeof\r@pgf@reada
- % end of file or it doesn't exist
-\else
- % loop or whatever
- \immediate\read\r@pgf@reada to\macro
- ...
-\fi
-\immediate\closein\r@pgf@reada
-\end{codeexample}
- %
-\end{internallist}
-
-\begin{internallist}[box]{\pgfutil@tempboxa}
- A box for temporary use inside of local \TeX\ scopes. For \LaTeX, this box
- is the same as the already pre-allocated |\@tempboxa|.
-\end{internallist}