Diagramme sagittal avec tikz

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux membres inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
styren
Utilisateur confirmé
Utilisateur confirmé
Messages : 72
Inscription : vendredi 28 juillet 2017, 23:29

[Résolu] Diagramme sagittal avec tikz

Message non lu par styren »

J'utilise le code tikz suivant (adapté d'un code récupéré sur internet) pour produire un diagramme sagittal.

Code : Tout sélectionner

\begin{tikzpicture}
            \foreach[count=\i] \lseti/\lsetmi in {A/{$a$,$b$,$c$,$d$},B/{$x$,$y$,$z$}} {
                \begin{scope}[local bounding box=\lseti, x=2cm, y=0.5cm]
                \foreach[count=\j] \lj in \lsetmi {
                    \node[minimum width=1em] (n-\j-\lseti) at (\i,-\j) {\lj};
                }
                \end{scope}
                \node[ellipse, draw, fit=(\lseti),
                label={[name=l-\lseti]above:$\lseti$}] {};
            }
            \draw[->] (n-1-A) -- (n-2-B);
            \draw[->] (n-2-A) -- (n-2-B);
            \draw[->] (n-3-A) -- (n-3-B);
            \draw[->] (n-4-A) -- (n-1-B);
\end{tikzpicture}
Je souhaite que les flèches arrivant sur un même élément (ici l'élément y) ne soient pas collées, mais qu'il y ait un léger écart vertical entre les pointes des flèches. Comment faire ?

Merci d'avance.
Dernière modification par styren le dimanche 26 septembre 2021, 12:19, modifié 1 fois.
MB
Administrateur
Administrateur
Messages : 7549
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Diagramme sagittal avec tikz

Message non lu par MB »

Bonjour, je suis loin d'être un spécialiste Tikz, mais je te propose le code suivant.

Code : Tout sélectionner

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,fit}
\begin{document}
\begin{tikzpicture}
    \foreach[count=\i] \lseti/\lsetmi in {A/{$a$,$b$,$c$,$d$},B/{$x$,$y$,$z$}} {
        \begin{scope}[local bounding box=\lseti,x=2cm,y=0.5cm]
        \foreach[count=\j] \lj in \lsetmi {
            \node[minimum width=1em] (n-\j-\lseti) at (\i,-\j) {\lj};
        }
        \end{scope}
        \node[ellipse, draw, fit=(\lseti),
        label={[name=l-\lseti]above:$\lseti$}] {};
    }
    \draw[->] (n-1-A) -- (n-2-B.150);
    \draw[->] (n-2-A) -- (n-2-B);
    \draw[->] (n-3-A) -- (n-3-B);
    \draw[->] (n-4-A) -- (n-1-B);
\end{tikzpicture}
\end{document}
7e849db205f96ccd02002bb0aeb71ab84609e917.svg
MB. (rejoignez pCloud afin d'obtenir 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
styren
Utilisateur confirmé
Utilisateur confirmé
Messages : 72
Inscription : vendredi 28 juillet 2017, 23:29

Re: Diagramme sagittal avec tikz

Message non lu par styren »

Je te remercie. En expérimentant avec ta modification, j'ai compris ce que tu fais. Du coup, je vais pouvoir adapter à mes autres diagrammes.
MB
Administrateur
Administrateur
Messages : 7549
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Diagramme sagittal avec tikz

Message non lu par MB »

Parfait si ça te convient. D'autres auront peut-être mieux à proposer.
MB. (rejoignez pCloud afin d'obtenir 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.