1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
% Copyright 2018 by Till Tantau
%
% 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{Design of the System Layer}
\makeatletter
\subsection{Driver Files}
\label{section-pgfsys}
The \pgfname\ system layer mainly consists of a large number of commands
starting with |\pgfsys@|. These commands will be called \emph{system commands}
in the following. The higher layers ``interface'' with the system layer by
calling these commands. The higher layers should never use |\special| commands
directly or even check whether |\pdfoutput| is defined. Instead, all drawing
requests should be ``channeled'' through the system commands.
The system layer is loaded and set up by the following package:
\begin{package}{pgfsys}
This file provides ``default implementations'' of all system commands, but
most simply produce a warning that they are not implemented. The actual
implementations of the system commands for a particular driver like, say,
|pdftex| reside in files called |pgfsys-xxxx.sty|, where |xxxx| is the
driver name. These will be called \emph{driver files} in the following.
When |pgfsys.sty| is loaded, it will try to determine which driver is used
by loading |pgf.cfg|. This file should set up the macro |\pgfsysdriver|
appropriately. The |pgfsys.sty| will input the appropriate
|pgfsys-|\meta{drivername}|.sty|.
\end{package}
\begin{command}{\pgfsysdriver}
This macro should expand to the name of the driver to be used by |pgfsys|.
The default from |pgf.cfg| is |pgfsys-\Gin@driver|. This is very likely to
be correct if you are using \LaTeX. For plain \TeX, the macro will be set
to |pgfsys-pdftex.def| if |pdftex| is used and to |pgfsys-dvips.def|
otherwise.
\end{command}
\begin{filedescription}{pgf.cfg}
This file should set up the command |\pgfsysdriver| correctly. If
|\pgfsysdriver| is already set to some value, the driver normally should
not change it. Otherwise, it should make a ``good guess'' at which driver
will be appropriate.
\end{filedescription}
The currently supported backend drivers are discussed in
Section~\ref{section-drivers}.
\subsection{Common Definition Files}
Some drivers share many |\pgfsys@| commands. For the reason, files defining
these ``common'' commands are available. These files are \emph{not} usable
alone.
\begin{filedescription}{pgfsys-common-postscript}
This file defines some |\pgfsys@| commands so that they produce appropriate
PostScript code.
\end{filedescription}
\begin{filedescription}{pgfsys-common-pdf}
This file defines some |\pgfsys@| commands so that they produce appropriate
\textsc{pdf} code.
\end{filedescription}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "pgfmanual"
%%% End:
|