From 810d9b451473ebe8e27c3f691bf001e01864e6fb Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sun, 15 Jan 2023 20:58:27 +0000
Subject: pgf (15jan23)

git-svn-id: svn://tug.org/texlive/trunk@65553 c570f23f-e606-0410-a88d-b1316a301751
---
 .../generic/pgf/pgfmanual-en-pgfsys-overview.tex   | 79 ++++++++++++++++++++++
 1 file changed, 79 insertions(+)
 create mode 100644 Master/texmf-dist/doc/generic/pgf/pgfmanual-en-pgfsys-overview.tex

(limited to 'Master/texmf-dist/doc/generic/pgf/pgfmanual-en-pgfsys-overview.tex')

diff --git a/Master/texmf-dist/doc/generic/pgf/pgfmanual-en-pgfsys-overview.tex b/Master/texmf-dist/doc/generic/pgf/pgfmanual-en-pgfsys-overview.tex
new file mode 100644
index 00000000000..ae1875bb9b6
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pgf/pgfmanual-en-pgfsys-overview.tex
@@ -0,0 +1,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:
-- 
cgit v1.2.3

