summaryrefslogtreecommitdiff
path: root/graphics/pgf/base/doc/pgfmanual-en-library-svg-path.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/base/doc/pgfmanual-en-library-svg-path.tex')
-rw-r--r--graphics/pgf/base/doc/pgfmanual-en-library-svg-path.tex58
1 files changed, 58 insertions, 0 deletions
diff --git a/graphics/pgf/base/doc/pgfmanual-en-library-svg-path.tex b/graphics/pgf/base/doc/pgfmanual-en-library-svg-path.tex
new file mode 100644
index 0000000000..ec45ca4435
--- /dev/null
+++ b/graphics/pgf/base/doc/pgfmanual-en-library-svg-path.tex
@@ -0,0 +1,58 @@
+% Copyright 2019 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{SVG-Path Library}
+\label{section-library-svg-path}
+
+\begin{pgflibrary}{svg.path}
+ This library defines a command that allows you to specify a path using the
+ \textsc{svg}-syntax.
+\end{pgflibrary}
+
+\begin{command}{\pgfpathsvg\marg{path}}
+ This command extends the current path by a \meta{path} given in the
+ \textsc{svg}-path-data syntax. This syntax is described in detail in
+ Section~8.3 of the \textsc{svg}-specification, Version~1.1.
+
+ In principle, the complete syntax is supported and the library just
+ provides a parser and a mapping to basic layer commands. For instance,
+ |M 0 10| is mapped to |\pgfpathmoveto{\pgfpoint{0pt}{10pt}}|. There are,
+ however, a few things to be aware of:
+ %
+ \begin{itemize}
+ \item The computation underlying the arc commands |A| and |a| are not
+ numerically stable, which may result in quite imprecise arcs.
+ Bézier curves, both quadratic and cubic, are not affected, neither
+ are arcs spanning degrees that are multiples of $90^{\circ}$.
+ \item The dimensionless units of \textsc{svg} are always interpreted as
+ points (|pt|). This is a problem with paths like |M 20000 0|, which
+ will raise an error message since \TeX\ cannot handle dimensions
+ larger than about 16\,000 points.
+ \item All coordinate and canvas transformations apply to the path in
+ the usual fashion.
+ \item The |\pgfpathsvg| command can be freely intermixed with other
+ path commands.
+ \end{itemize}
+ %
+\begin{codeexample}[preamble={\usepgflibrary{svg.path}}]
+\begin{pgfpicture}
+ \pgfpathsvg{M 0 0 l 20 0 0 20 -20 0 q 10 0 10 10
+ t 10 10 10 10 h -50 z}
+ \pgfusepath{stroke}
+\end{pgfpicture}
+\end{codeexample}
+ %
+\end{command}
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "pgfmanual-pdftex-version"
+%%% End: