TikZ cercle et inner sep, xsep, ysep
Pour la forme Cercle d'un noeud, l'option `inner sep` fixe le rayon du cercle de manière a ce qu'il soit circonscrit au rectangle ou au carré du noeud dont les dimensions sont fixées par `inner xsep` et `inner ysep`. `Inner sep` est un raccourcis pour fixer une valeur unique à `inner xsep` et `inner ysep` en une seule commande (et on est donc dans le cas d'un carré)
\documentclass[]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
[every node/.style={line width=1pt}]
% Le style par défaut pour les noeuds (épaisseur de ligne de 1 pt)
% La grille de repérage
\draw[help lines] (-4,-4) grid (10,4);
% Sans coordonnée pour la position du noeud, c'est la position par défaut (0,0)
% cas du rectangle
% Avec xsep et ysep le cercle est circonsrit au rectangle et a pour rayon racine carré de (xsep au carré plus ysep au carré) par Pythagore. Par exemple xsep=3 et ysep=4, donne un rayon de 5.
\node [draw,rectangle,inner xsep=2cm, inner ysep= 3cm,blue] {};
\node [draw,circle,inner xsep=2cm, inner ysep= 3cm,red] {};
% triangle
\draw[line width=1pt] (0,0) -- (2,0) node [midway,below]{$xsep$}-- (2,3) node [midway,sloped,below]{$ysep$}--cycle node [midway,sloped,above] {$\sqrt{xsep^2+ysep^2 }$};
% cas du carré
% Avec sep, le cercle est circonscrit au carrée et a pour rayon sep * racine de 2 (même résultat qu'avec deux valeurs identiques pour xsep et ysep, sep=xsep=ysep)
\coordinate (C) at(7,0);
\node [draw,rectangle,inner xsep=2cm, inner ysep= 2cm,blue] at (C) {};
\node [draw,circle,inner xsep=2cm, inner ysep= 2cm,red] at (C) {};
% triangle
\draw[line width=1pt] (C) -- (9,0) node [midway,below]{$sep$}-- (9,2) node [midway,sloped,below]{$sep$}--cycle node [midway,sloped,above] {$\sqrt{2 }\times sep$};
\end{tikzpicture}
\end{document}
![alt text][1]
Il y a une bizarrerie dont je ne comprend pas la logique. Si on met `inner xsep`, alors `inner ysep` devrait fixer la valeur du rayon (ou vice versa), or ce n'est pas exactement le cas.
On trouve un rayon très légèrement plus petit et l'écart augmente avec la taille du cercle. Pour que `inner xsep` soit exactement le rayon du cercle, il ne faut pas préciser `inner ysep`, ou bien ce qui revient au même fixer sa valeur à sa valeur initiale qui est égale à `0.3333em` d'après la documentation.
\begin{tikzpicture}
[every node/.style={draw,circle,line width=0.1pt}]
% Le style par défaut pour les noeuds (dessine la forme du noeud, cercle, épaisseur de ligne de 0.1 pt, petite pour bien voir)
% La grille de repérage
\draw[help lines] (-7,-7) grid (7,7);
% Avec une seule dimension xsep ou ysep, le cercle a le bon rayon (égal à la valeur de xsep ou ysep)
\node [inner xsep=1cm, black] {};
% Si on met la seconde valeur à zéro, on obtient un cercle légèrement plus petit, l'écart augmente avec la taille du cercle
\node [inner ysep=2cm, inner xsep=0 cm,green] {};
\node [inner ysep=6cm, inner xsep=0 cm,green] {};
% Pour retrouver exactement le bon cercle, il faut mettre pour la seconde valeur sa valeur initiale, xsep ou ysep = 0.3333em
\node [inner ysep=2cm, inner xsep=0.3333em,blue] {};
\node [inner ysep=6cm, inner xsep=0.3333em,blue] {};
\node [inner ysep=6cm,red] {};
% le rouge se superpose parfaitement sur le cercle bleu (qu'on ne voit plus du coup)
\end{tikzpicture}
\end{document}
![alt text][2]
En zoomant on peut voir la différence. Cercle vert avec inner ysep=O et cercle rouge avec inner ysep non précisé ou égale à 0.3333em.
![alt text][3]
La question est pourquoi `inner xsep` n'est pas exactement le rayon du cercle quand `inner ysep=0` (ou vice versa). L'écart est minime alors ça n'a pas vraiment d'implication pratique, mais j'aimerais comprendre.
\begin{tikzpicture}
[every node/.style={draw,circle,line width=0.1pt}]
% Le style par défaut pour les noeuds (dessine la forme du noeud, cercle, épaisseur de ligne de 0.1 pt, petite pour bien voir)
% La grille de repérage
\draw[help lines] (-7,-7) grid (7,7);
% Avec une seule dimension xsep ou ysep, le cercle a le bon rayon (égal à la valeur de xsep ou ysep)
\node [inner xsep=1cm, black] {};
% Si on met la seconde valeur à zéro, on obtient un cercle légèrement plus petit, l'écart augmente avec la taille du cercle
\node [inner ysep=2cm, inner xsep=0 cm,green] {};
\node [inner ysep=6cm, inner xsep=0 cm,green] {};
% Pour retrouver exactement le bon cercle, il faut mettre pour la seconde valeur sa valeur initiale, xsep ou ysep = 0.3333em
\node [inner ysep=2cm, inner xsep=0.3333em,blue] {};
\node [inner ysep=6cm, inner xsep=0.3333em,blue] {};
\node [inner ysep=6cm,red] {};
% le rouge se superpose parfaitement sur le cercle bleu (qu'on ne voit plus du coup)
\end{tikzpicture}
\end{document}
![alt text][2]
En zoomant on peut voir la différence. Cercle vert avec inner ysep=O et cercle rouge avec inner ysep non précisé ou égale à 0.3333em.
![alt text][3]
[1]: https://texnique.fr/osqa/upfiles/Circle_et_inner_sep_1.png
[2]: https://texnique.fr/osqa/upfiles/Circle_et_inner_sep_2.png
[3]: https://texnique.fr/osqa/upfiles/Circle_et_inner_sep_3.png