%% Generated by Sphinx.
\def\sphinxdocclass{report}
\documentclass[letterpaper,10pt,english]{sphinxmanual}
\ifdefined\pdfpxdimen
   \let\sphinxpxdimen\pdfpxdimen\else\newdimen\sphinxpxdimen
\fi \sphinxpxdimen=.75bp\relax
\ifdefined\pdfimageresolution
    \pdfimageresolution= \numexpr \dimexpr1in\relax/\sphinxpxdimen\relax
\fi
%% let collapsible pdf bookmarks panel have high depth per default
\PassOptionsToPackage{bookmarksdepth=5}{hyperref}

\PassOptionsToPackage{booktabs}{sphinx}
\PassOptionsToPackage{colorrows}{sphinx}

\PassOptionsToPackage{warn}{textcomp}
\usepackage[utf8]{inputenc}
\ifdefined\DeclareUnicodeCharacter
% support both utf8 and utf8x syntaxes
  \ifdefined\DeclareUnicodeCharacterAsOptional
    \def\sphinxDUC#1{\DeclareUnicodeCharacter{"#1}}
  \else
    \let\sphinxDUC\DeclareUnicodeCharacter
  \fi
  \sphinxDUC{00A0}{\nobreakspace}
  \sphinxDUC{2500}{\sphinxunichar{2500}}
  \sphinxDUC{2502}{\sphinxunichar{2502}}
  \sphinxDUC{2514}{\sphinxunichar{2514}}
  \sphinxDUC{251C}{\sphinxunichar{251C}}
  \sphinxDUC{2572}{\textbackslash}
\fi
\usepackage{cmap}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb,amstext}
\usepackage{babel}



\usepackage{tgtermes}
\usepackage{tgheros}
\renewcommand{\ttdefault}{txtt}



\usepackage[Bjarne]{fncychap}
\usepackage{sphinx}

\fvset{fontsize=auto}
\usepackage{geometry}


% Include hyperref last.
\usepackage{hyperref}
% Fix anchor placement for figures with captions.
\usepackage{hypcap}% it must be loaded after hyperref.
% Set up styles of URL: it should be placed after hyperref.
\urlstyle{same}

\addto\captionsenglish{\renewcommand{\contentsname}{Contents:}}

\usepackage{sphinxmessages}
\setcounter{tocdepth}{1}



\title{svg2tikz}
\date{Mar 08, 2025}
\release{3.3.0}
\author{Kjell Magne Fauske, Louis Devillez}
\newcommand{\sphinxlogo}{\vbox{}}
\renewcommand{\releasename}{Release}
\makeindex
\begin{document}

\ifdefined\shorthandoff
  \ifnum\catcode`\=\string=\active\shorthandoff{=}\fi
  \ifnum\catcode`\"=\active\shorthandoff{"}\fi
\fi

\pagestyle{empty}
\sphinxmaketitle
\pagestyle{plain}
\sphinxtableofcontents
\pagestyle{normal}
\phantomsection\label{\detokenize{index::doc}}


\sphinxAtStartPar
Svg2tikz is an Inkscape extension for exporting SVG paths as TikZ/PGF paths for LaTeX document.
Svg2tikz can also be used as a command line tool or as a Python module.


\chapter{Contents}
\label{\detokenize{index:contents}}
\sphinxstepscope


\section{Installation guide}
\label{\detokenize{install:installation-guide}}\label{\detokenize{install::doc}}
\sphinxAtStartPar
Svg2TikZ can be used in three different ways:
\begin{itemize}
\item {} 
\sphinxAtStartPar
as an Inkscape extension

\item {} 
\sphinxAtStartPar
as a command line tool

\item {} 
\sphinxAtStartPar
as a python module

\end{itemize}


\subsection{Dependencies}
\label{\detokenize{install:dependencies}}
\sphinxAtStartPar
SVG2TikZ has the following dependencies:
\begin{itemize}
\item {} 
\sphinxAtStartPar
\sphinxhref{http://lxml.de/}{lxml} (not required if SVG2TikZ is run as an inkscape extension)

\item {} 
\sphinxAtStartPar
\sphinxhref{http://sourceforge.net/projects/xclip/}{xclip} or \sphinxhref{http://developer.apple.com/library/mac/\#documentation/Darwin/Reference/ManPages/man1/pbcopy.1.html}{pbcopy} (required only if you want clipboard support on Linux or Os X)

\item {} 
\sphinxAtStartPar
\sphinxhref{https://pypi.org/project/inkex/}{inkex} (not required if SVG2TiKz is run as an inkscape extension)

\end{itemize}

\sphinxAtStartPar
\sphinxhref{http://sourceforge.net/projects/xclip/}{xclip} is a command line tools available in most Linux distributions. Use your favorite package manager to install it. \sphinxhref{http://developer.apple.com/library/mac/\#documentation/Darwin/Reference/ManPages/man1/pbcopy.1.html}{pbcopy} is a command line tool available in OS X.


\subsection{Installing for use with Inkscape}
\label{\detokenize{install:installing-for-use-with-inkscape}}\label{\detokenize{install:inkscape-install}}
\sphinxAtStartPar
SVG2TikZ is not bundled with Inkscape. You therefore have to install it manually.

\sphinxAtStartPar
The extension consists of the following files:
\begin{itemize}
\item {} 
\sphinxAtStartPar
\sphinxcode{\sphinxupquote{tikz\_export.py}}, extension code

\item {} 
\sphinxAtStartPar
\sphinxcode{\sphinxupquote{tikz\_export\_effect.inx}}, effect setup file

\item {} 
\sphinxAtStartPar
\sphinxcode{\sphinxupquote{tikz\_export\_output.inx}}, output setup file

\end{itemize}

\sphinxAtStartPar
Which are located in the \sphinxcode{\sphinxupquote{svg2tikz/extensions}} folder. Installing is as simple as copying the script and its INX files to the Inkscape extensions directory. The location of the extensions directory depends on which operating system you use:
\begin{description}
\sphinxlineitem{Windows}
\sphinxAtStartPar
\sphinxcode{\sphinxupquote{C:\textbackslash{}Program Files\textbackslash{}Inkscape\textbackslash{}share\textbackslash{}inkscape\textbackslash{}extensions\textbackslash{}}}

\sphinxlineitem{Linux}
\sphinxAtStartPar
\sphinxcode{\sphinxupquote{/usr/share/inkscape/extensions}} \sphinxstyleemphasis{or} \sphinxcode{\sphinxupquote{\textasciitilde{}/.config/inkscape/extensions/}}

\sphinxlineitem{Mac}
\sphinxAtStartPar
\sphinxcode{\sphinxupquote{/Applications/Inkscape.app/Contents/Resources/extensions}} \sphinxstyleemphasis{or} \sphinxcode{\sphinxupquote{\textasciitilde{}/.config/inkscape/extensions/}}

\end{description}

\sphinxAtStartPar
Additionally the extension has the following dependencies:
\begin{itemize}
\item {} 
\sphinxAtStartPar
\sphinxhref{https://pypi.org/project/inkex/}{inkex}

\item {} 
\sphinxAtStartPar
\sphinxhref{http://lxml.de/}{lxml}

\end{itemize}

\sphinxAtStartPar
The dependencies are bundled with Inkscape and normally you don’t need to install them yourself. But in the case they are not her, look in the main extensions directory. You can also download them from the repository


\subsection{Installing for use as library or command line tool}
\label{\detokenize{install:installing-for-use-as-library-or-command-line-tool}}
\sphinxAtStartPar
SVG2TikZ started out as an Inkscape extension, but it can also be used as a standalone tool.


\subsubsection{Automatic installation via a package manager}
\label{\detokenize{install:automatic-installation-via-a-package-manager}}
\sphinxAtStartPar
SVG2TikZ is available on \sphinxhref{https://pypi.org/project/svg2tikz/}{pypi}. You can install it directly with the following command:

\sphinxAtStartPar
\sphinxcode{\sphinxupquote{pip install svg2tikz}}


\subsubsection{Manual installation from a Git checkout}
\label{\detokenize{install:manual-installation-from-a-git-checkout}}\begin{itemize}
\item {} 
\sphinxAtStartPar
Clone this repository from GitHub, using
\sphinxcode{\sphinxupquote{git clone https://github.com/xyz2tex/svg2tikz.git}}

\item {} 
\sphinxAtStartPar
\sphinxcode{\sphinxupquote{cd}} into \sphinxcode{\sphinxupquote{svg2tikz}}.

\item {} 
\sphinxAtStartPar
For installation as a Python 3 package, type

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYGZdl{} pip install .
\end{sphinxVerbatim}

\end{itemize}

\sphinxAtStartPar
You should now be able to import the \sphinxcode{\sphinxupquote{svg2tikz}} module from the
Python 3 prompt without error:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{g+gp}{\PYGZgt{}\PYGZgt{}\PYGZgt{} }\PYG{k+kn}{import} \PYG{n+nn}{svg2tikz}
\end{sphinxVerbatim}

\sphinxAtStartPar
For more information on the use of \sphinxcode{\sphinxupquote{svg2tikz}} as a Python module,
see the {\hyperref[\detokenize{moduleguide:module-guide}]{\sphinxcrossref{\DUrole{std}{\DUrole{std-ref}{package guide}}}}}.

\sphinxAtStartPar
Installation using \sphinxcode{\sphinxupquote{pip}} also makes available the \sphinxcode{\sphinxupquote{svg2tikz}}
command\sphinxhyphen{}line tool; typically (for non\sphinxhyphen{}root installation), it will be in
the directory \sphinxcode{\sphinxupquote{\$HOME/.local/bin/}}, so to run it, you need to ensure
that directory is on your PATH.

\sphinxstepscope


\section{Example}
\label{\detokenize{example:example}}\label{\detokenize{example::doc}}
\sphinxAtStartPar
Let’s see together how to use SVG2Tikz to convert an SVG to tikz code and include it in your work. Let’s take this svg of articulated\_leg:

\noindent\sphinxincludegraphics{{articulated_leg}.pdf}

\sphinxAtStartPar
It’s composed of several paths:
\begin{itemize}
\item {} 
\sphinxAtStartPar
A torso

\item {} 
\sphinxAtStartPar
A Thigh

\item {} 
\sphinxAtStartPar
A Calf

\item {} 
\sphinxAtStartPar
A Foot

\item {} 
\sphinxAtStartPar
3 articulation joints: Ankle, knee and hip

\end{itemize}

\sphinxAtStartPar
With the file open in inkscape, we can directly go into Extension/export/Export to tikz path. This open a new window with multiple options in serveral tabs.

\noindent\sphinxincludegraphics{{inkscape_example_articulated_leg}.png}

\sphinxAtStartPar
First we can check the option \sphinxtitleref{Export to clipboard}. Then in the Tikz option we set to export only the pathcode as we do not need any particular color definition and that we will use this tex file in an another code. We click on apply and we get the following output:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{k}{\PYGZbs{}path}\PYG{n+na}{[draw=black,fill=white,line cap=round,line width=0.01855cm]} (0.18996, 6.67363).. controls (0.16754, 6.59255) and (0.16587, 6.586) .. (0.15354, 6.54586).. controls (0.14121, 6.50572) and (0.12729, 6.46367) .. (0.11179, 6.41973).. controls (\PYGZhy{}0.02653, 6.02751) and (\PYGZhy{}0.05811, 5.5991) .. (0.22882, 5.29253).. controls (0.35169, 5.23787) and (1.0929, 5.23726) .. (1.51182, 5.37904).. controls (1.51506, 5.42205) and (1.51951, 5.47389) .. (1.52318, 5.52894).. controls (1.53178, 5.65804) and (1.53761, 5.77619) .. (1.53855, 5.88105).. controls (1.5442, 5.91233) and (1.54938, 5.96152) .. (1.55409, 6.02865).. controls (1.55881, 6.09577) and (1.56455, 6.22178) .. (1.56682, 6.28381).. controls (1.5691, 6.34584) and (1.5715, 6.42702) .. (1.57298, 6.4857).. controls (1.57446, 6.54439) and (1.57524, 6.58326) .. (1.57734, 6.68764) \PYGZhy{}\PYGZhy{} cycle;



\PYG{k}{\PYGZbs{}path}\PYG{n+na}{[draw=black,fill=white,line cap=round,line width=0.01855cm]} (0.23489, 5.24417).. controls (0.24789, 5.18345) and (0.24593, 5.08146) .. (0.24092, 4.8556).. controls (0.23326, 4.50973) and (0.24308, 4.39896) .. (0.30338, 4.15382).. controls (0.37273, 3.87191) and (0.3952, 3.62892) .. (0.36992, 3.40372).. controls (0.4783, 3.10227) and (0.64618, 3.01406) .. (0.79016, 2.99682).. controls (0.81982, 2.99327) and (0.84847, 2.99273) .. (0.87976, 2.99622).. controls (1.00951, 3.01079) and (1.18465, 3.09504) .. (1.25524, 3.32276).. controls (1.25549, 3.39971) and (1.27522, 3.4903) .. (1.29886, 3.52406).. controls (1.40255, 3.67209) and (1.44593, 3.92328) .. (1.46142, 4.46525).. controls (1.4467, 4.78798) and (1.53565, 5.45383) .. (1.53855, 5.88103).. controls (1.54563, 6.16964) and (1.11475, 6.17171) .. (0.90207, 6.17244).. controls (0.84398, 6.17264) and (0.80216, 6.17274) .. (0.7554, 6.17204).. controls (0.50573, 6.16816) and (0.115, 6.14067) .. (0.23489, 5.24417);



\PYG{k}{\PYGZbs{}path}\PYG{n+na}{[draw=black,fill=white,line cap=round,line width=0.01855cm]} (1.16312, 2.92339).. controls (1.11279, 2.78068) and (1.04991, 2.51646) .. (1.02337, 2.33625).. controls (0.96993, 1.97341) and (0.97082, 1.97911) .. (0.89825, 1.54901).. controls (0.86234, 1.33618) and (0.8471, 1.11987) .. (0.8573, 0.94698).. controls (0.8717, 0.65971) and (0.75582, 0.39403) .. (0.61336, 0.33848).. controls (0.5881, 0.32863) and (0.56201, 0.32539) .. (0.52692, 0.3324).. controls (0.41144, 0.3555) and (0.1986, 0.48976) .. (0.20932, 0.93085).. controls (0.21981, 1.27003) and (0.20895, 1.6992) .. (0.14059, 2.02779).. controls (0.06794, 2.37699) and (0.11809, 2.64748) .. (0.25717, 2.97495).. controls (0.33005, 3.13468) and (0.62011, 3.25057) .. (0.78457, 3.28224).. controls (0.81705, 3.28849) and (0.84463, 3.29146) .. (0.8778, 3.28371).. controls (1.00433, 3.25413) and (1.21223, 3.06852) .. (1.16312, 2.92339);



\PYG{k}{\PYGZbs{}path}\PYG{n+na}{[draw=black,fill=white,line cap=round,line width=0.01855cm]} (0.2806, 0.01255).. controls (1.80006, 0.0098) and (2.46455, \PYGZhy{}0.02931) .. (1.55022, 0.25983).. controls (1.46244, 0.28759) and (1.25302, 0.35957) .. (1.08461, 0.48791).. controls (0.96181, 0.56917) and (0.77457, 0.60981) .. (0.61801, 0.62088).. controls (0.58522, 0.6232) and (0.55379, 0.62422) .. (0.52323, 0.62148).. controls (0.4078, 0.61131) and (0.30498, 0.54812) .. (0.17596, 0.464).. controls (0.13929, 0.19854) and (\PYGZhy{}0.05827, 0.01311) .. (0.2806, 0.0125) \PYGZhy{}\PYGZhy{} cycle;
\end{sphinxVerbatim}

\sphinxAtStartPar
We can create macro for each articulation:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{k}{\PYGZbs{}newcommand}\PYG{n+nb}{\PYGZob{}}\PYG{k}{\PYGZbs{}hipArt}\PYG{n+nb}{\PYGZcb{}}\PYG{n+nb}{\PYGZob{}}(1.3537, 6.2435)\PYG{n+nb}{\PYGZcb{}}
\PYG{k}{\PYGZbs{}newcommand}\PYG{n+nb}{\PYGZob{}}\PYG{k}{\PYGZbs{}kneeArt}\PYG{n+nb}{\PYGZcb{}}\PYG{n+nb}{\PYGZob{}}(1.3537, 3.3575)\PYG{n+nb}{\PYGZcb{}}
\PYG{k}{\PYGZbs{}newcommand}\PYG{n+nb}{\PYGZob{}}\PYG{k}{\PYGZbs{}ankleArt}\PYG{n+nb}{\PYGZcb{}}\PYG{n+nb}{\PYGZob{}}(1.0781, 0.6906)\PYG{n+nb}{\PYGZcb{}}
\end{sphinxVerbatim}

\sphinxAtStartPar
We separate each path into its own file:

\sphinxAtStartPar
torso.tex:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{k}{\PYGZbs{}path}\PYG{n+na}{[draw=black,fill=white,line cap=round,line width=0.01855cm]} (0.18996, 6.67363).. controls (0.16754, 6.59255) and (0.16587, 6.586) .. (0.15354, 6.54586).. controls (0.14121, 6.50572) and (0.12729, 6.46367) .. (0.11179, 6.41973).. controls (\PYGZhy{}0.02653, 6.02751) and (\PYGZhy{}0.05811, 5.5991) .. (0.22882, 5.29253).. controls (0.35169, 5.23787) and (1.0929, 5.23726) .. (1.51182, 5.37904).. controls (1.51506, 5.42205) and (1.51951, 5.47389) .. (1.52318, 5.52894).. controls (1.53178, 5.65804) and (1.53761, 5.77619) .. (1.53855, 5.88105).. controls (1.5442, 5.91233) and (1.54938, 5.96152) .. (1.55409, 6.02865).. controls (1.55881, 6.09577) and (1.56455, 6.22178) .. (1.56682, 6.28381).. controls (1.5691, 6.34584) and (1.5715, 6.42702) .. (1.57298, 6.4857).. controls (1.57446, 6.54439) and (1.57524, 6.58326) .. (1.57734, 6.68764) \PYGZhy{}\PYGZhy{} cycle;
\end{sphinxVerbatim}

\sphinxAtStartPar
thigh.tex:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{k}{\PYGZbs{}path}\PYG{n+na}{[draw=black,fill=white,line cap=round,line width=0.01855cm]} (0.23489, 5.24417).. controls (0.24789, 5.18345) and (0.24593, 5.08146) .. (0.24092, 4.8556).. controls (0.23326, 4.50973) and (0.24308, 4.39896) .. (0.30338, 4.15382).. controls (0.37273, 3.87191) and (0.3952, 3.62892) .. (0.36992, 3.40372).. controls (0.4783, 3.10227) and (0.64618, 3.01406) .. (0.79016, 2.99682).. controls (0.81982, 2.99327) and (0.84847, 2.99273) .. (0.87976, 2.99622).. controls (1.00951, 3.01079) and (1.18465, 3.09504) .. (1.25524, 3.32276).. controls (1.25549, 3.39971) and (1.27522, 3.4903) .. (1.29886, 3.52406).. controls (1.40255, 3.67209) and (1.44593, 3.92328) .. (1.46142, 4.46525).. controls (1.4467, 4.78798) and (1.53565, 5.45383) .. (1.53855, 5.88103).. controls (1.54563, 6.16964) and (1.11475, 6.17171) .. (0.90207, 6.17244).. controls (0.84398, 6.17264) and (0.80216, 6.17274) .. (0.7554, 6.17204).. controls (0.50573, 6.16816) and (0.115, 6.14067) .. (0.23489, 5.24417);
\end{sphinxVerbatim}

\sphinxAtStartPar
calf.tex:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{k}{\PYGZbs{}path}\PYG{n+na}{[draw=black,fill=white,line cap=round,line width=0.01855cm]} (1.16312, 2.92339).. controls (1.11279, 2.78068) and (1.04991, 2.51646) .. (1.02337, 2.33625).. controls (0.96993, 1.97341) and (0.97082, 1.97911) .. (0.89825, 1.54901).. controls (0.86234, 1.33618) and (0.8471, 1.11987) .. (0.8573, 0.94698).. controls (0.8717, 0.65971) and (0.75582, 0.39403) .. (0.61336, 0.33848).. controls (0.5881, 0.32863) and (0.56201, 0.32539) .. (0.52692, 0.3324).. controls (0.41144, 0.3555) and (0.1986, 0.48976) .. (0.20932, 0.93085).. controls (0.21981, 1.27003) and (0.20895, 1.6992) .. (0.14059, 2.02779).. controls (0.06794, 2.37699) and (0.11809, 2.64748) .. (0.25717, 2.97495).. controls (0.33005, 3.13468) and (0.62011, 3.25057) .. (0.78457, 3.28224).. controls (0.81705, 3.28849) and (0.84463, 3.29146) .. (0.8778, 3.28371).. controls (1.00433, 3.25413) and (1.21223, 3.06852) .. (1.16312, 2.92339);
\end{sphinxVerbatim}

\sphinxAtStartPar
foot.tex:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{k}{\PYGZbs{}path}\PYG{n+na}{[draw=black,fill=white,line cap=round,line width=0.01855cm]} (0.2806, 0.01255).. controls (1.80006, 0.0098) and (2.46455, \PYGZhy{}0.02931) .. (1.55022, 0.25983).. controls (1.46244, 0.28759) and (1.25302, 0.35957) .. (1.08461, 0.48791).. controls (0.96181, 0.56917) and (0.77457, 0.60981) .. (0.61801, 0.62088).. controls (0.58522, 0.6232) and (0.55379, 0.62422) .. (0.52323, 0.62148).. controls (0.4078, 0.61131) and (0.30498, 0.54812) .. (0.17596, 0.464).. controls (0.13929, 0.19854) and (\PYGZhy{}0.05827, 0.01311) .. (0.2806, 0.0125) \PYGZhy{}\PYGZhy{} cycle;
\end{sphinxVerbatim}

\sphinxAtStartPar
We can then recombine our svg with the following code:

\begin{sphinxVerbatim}[commandchars=\\\{\}]
\PYG{k}{\PYGZbs{}begin}\PYG{n+nb}{\PYGZob{}}center\PYG{n+nb}{\PYGZcb{}}
	\PYG{k}{\PYGZbs{}tikzsetnextfilename}\PYG{n+nb}{\PYGZob{}}Test\PYG{n+nb}{\PYGZus{}}articulated\PYG{n+nb}{\PYGZus{}}leg\PYG{n+nb}{\PYGZcb{}}
	\PYG{k}{\PYGZbs{}begin}\PYG{n+nb}{\PYGZob{}}tikzpicture\PYG{n+nb}{\PYGZcb{}}[y=1cm, x=1cm, inner sep=0pt, outer sep=0pt]


		\PYG{k}{\PYGZbs{}input}\PYG{n+nb}{\PYGZob{}}joints\PYG{n+nb}{\PYGZus{}}def\PYG{n+nb}{\PYGZcb{}}
		\PYG{k}{\PYGZbs{}input}\PYG{n+nb}{\PYGZob{}}articulated\PYG{n+nb}{\PYGZus{}}leg/torso\PYG{n+nb}{\PYGZcb{}}

		\PYG{k}{\PYGZbs{}begin}\PYG{n+nb}{\PYGZob{}}scope\PYG{n+nb}{\PYGZcb{}}[rotate around=\PYG{n+nb}{\PYGZob{}}30:(hipArt)\PYG{n+nb}{\PYGZcb{}}]

			\PYG{k}{\PYGZbs{}input}\PYG{n+nb}{\PYGZob{}}articulated\PYG{n+nb}{\PYGZus{}}leg/thigh\PYG{n+nb}{\PYGZcb{}}
			\PYG{k}{\PYGZbs{}begin}\PYG{n+nb}{\PYGZob{}}scope\PYG{n+nb}{\PYGZcb{}}[rotate around=\PYG{n+nb}{\PYGZob{}}\PYGZhy{}20:(kneeArt)\PYG{n+nb}{\PYGZcb{}}]

				\PYG{k}{\PYGZbs{}input}\PYG{n+nb}{\PYGZob{}}articulated\PYG{n+nb}{\PYGZus{}}leg/calf\PYG{n+nb}{\PYGZcb{}}
				\PYG{k}{\PYGZbs{}begin}\PYG{n+nb}{\PYGZob{}}scope\PYG{n+nb}{\PYGZcb{}}[rotate around=\PYG{n+nb}{\PYGZob{}}10:(ankleArt)\PYG{n+nb}{\PYGZcb{}}]

					\PYG{k}{\PYGZbs{}input}\PYG{n+nb}{\PYGZob{}}articulated\PYG{n+nb}{\PYGZus{}}leg/feet\PYG{n+nb}{\PYGZcb{}}
				\PYG{k}{\PYGZbs{}end}\PYG{n+nb}{\PYGZob{}}scope\PYG{n+nb}{\PYGZcb{}}
				\PYG{k}{\PYGZbs{}draw}\PYG{n+na}{[line width=0.018cm]} (ankleArt) circle(0.05);
			\PYG{k}{\PYGZbs{}end}\PYG{n+nb}{\PYGZob{}}scope\PYG{n+nb}{\PYGZcb{}}
			\PYG{k}{\PYGZbs{}draw}\PYG{n+na}{[line width=0.018cm]} (kneeArt) circle(0.05);
		\PYG{k}{\PYGZbs{}end}\PYG{n+nb}{\PYGZob{}}scope\PYG{n+nb}{\PYGZcb{}}
		\PYG{k}{\PYGZbs{}draw}\PYG{n+na}{[line width=0.018cm]} (hipArt) circle(0.05);


	\PYG{k}{\PYGZbs{}end}\PYG{n+nb}{\PYGZob{}}tikzpicture\PYG{n+nb}{\PYGZcb{}}
\PYG{k}{\PYGZbs{}end}\PYG{n+nb}{\PYGZob{}}center\PYG{n+nb}{\PYGZcb{}}
\end{sphinxVerbatim}

\sphinxAtStartPar
It allows us to control the angle between each member

\noindent\sphinxincludegraphics{{articulated_leg_angled}.png}

\sphinxstepscope


\section{Inkscape guide}
\label{\detokenize{inkscapeguide:inkscape-guide}}\label{\detokenize{inkscapeguide::doc}}
\sphinxAtStartPar
Svg2TikZ originally started out as an Inkscape extension and most users will
probably use it this way.

\sphinxAtStartPar
If installed properly, the extension should appear in the extensions menu under \sphinxtitleref{Export}. If you
can’t find it see the {\hyperref[\detokenize{install:inkscape-install}]{\sphinxcrossref{\DUrole{std}{\DUrole{std-ref}{Installing for use with Inkscape}}}}} for installation details.

\sphinxstepscope


\section{Command line guide}
\label{\detokenize{cmdlineguide:command-line-guide}}\label{\detokenize{cmdlineguide::doc}}
\sphinxAtStartPar
You can get direct help from the command line with \sphinxcode{\sphinxupquote{svg2tikz \sphinxhyphen{}h}}

\sphinxstepscope


\section{package guide}
\label{\detokenize{moduleguide:module-svg2tikz}}\label{\detokenize{moduleguide:package-guide}}\label{\detokenize{moduleguide:module-guide}}\label{\detokenize{moduleguide::doc}}\index{module@\spxentry{module}!svg2tikz@\spxentry{svg2tikz}}\index{svg2tikz@\spxentry{svg2tikz}!module@\spxentry{module}}
\sphinxstepscope


\section{How to contribute}
\label{\detokenize{contribute:how-to-contribute}}\label{\detokenize{contribute::doc}}
\sphinxAtStartPar
First of all thanks for your interest in contributing in this project.


\subsection{Tools}
\label{\detokenize{contribute:tools}}
\sphinxAtStartPar
We used \sphinxhref{https://github.com/psf/black}{black} and \sphinxhref{https://github.com/pylint-dev/pylint}{pylint} to format and lint the code. Github actions are run on the merge request to check that the code is valid.

\sphinxAtStartPar
You can directly install the dev depedencies with \sphinxtitleref{poetry install \textendash{}with dev}


\subsection{Tests}
\label{\detokenize{contribute:tests}}
\sphinxAtStartPar
The tests of SVG2TikZ are writting using the unittest package. You can run all the test with command \sphinxtitleref{python \sphinxhyphen{}m unittest}.


\chapter{Indices and tables}
\label{\detokenize{index:indices-and-tables}}\begin{itemize}
\item {} 
\sphinxAtStartPar
\DUrole{xref}{\DUrole{std}{\DUrole{std-ref}{genindex}}}

\item {} 
\sphinxAtStartPar
\DUrole{xref}{\DUrole{std}{\DUrole{std-ref}{modindex}}}

\item {} 
\sphinxAtStartPar
\DUrole{xref}{\DUrole{std}{\DUrole{std-ref}{search}}}

\end{itemize}


\renewcommand{\indexname}{Python Module Index}
\begin{sphinxtheindex}
\let\bigletter\sphinxstyleindexlettergroup
\bigletter{s}
\item\relax\sphinxstyleindexentry{svg2tikz}\sphinxstyleindexpageref{moduleguide:\detokenize{module-svg2tikz}}
\end{sphinxtheindex}

\renewcommand{\indexname}{Index}
\printindex
\end{document}