\documentclass[french,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{calc}
\usepackage{tikz}
\usetikzlibrary{babel,calc}
\usepackage[french]{babel}
\begin{document}
\begin{tikzpicture}
  % Tracé de chaque pièce: 1:NS,2EO
  \def\salon{
    \draw(0,0) rectangle node[above]{s. m\up{2}} (5.10,4.20);
  }
  \def\bureau{
  \draw(0,0) rectangle node[above] {s} (3.25,3.75);
  }

  % Placement:
  \begin{scope}[xshift=2, yshift=1]
    \salon
  \end{scope}
  \begin{scope}[xshift=2,yshift=5.45]
    \bureau
  \end{scope}
\end{tikzpicture}
\end{document}

Les 2 rectangles \salon et \bureau sont superposés, alors que je m'attends à afficher le rectangle \bureau décalé au dessus du \salon.

Qu'est-ce qui m'échappe dans cette syntaxe?

alt text

Posée 01 Fév '22, 10:34

joseph-tux's gravatar image

joseph-tux
42722552
Taux d'acceptation : 4%

Modifiée 10 Fév '22, 11:50


Les coordonnées en x/yshift ne sont pas les coordonnées normales, elles sont très petites. Si vous choisissez des autres coordonnées, vous pouvez voir l'effet :

\documentclass[french,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{calc}
\usepackage{tikz}
\usetikzlibrary{babel,calc}
\usepackage[french]{babel}
\begin{document}
\begin{tikzpicture}
  % Tracé de chaque pièce: 1:NS,2EO
  \def\salon{
    \draw[blue](0,0) rectangle node[above]{s. m\up{2}} (5.10,4.20);
  }
  \def\bureau{
  \draw[red](0,0) rectangle node[above] {s} (3.25,3.75);
  }

  % Placement:
  \begin{scope}[xshift=2cm, yshift=1cm]
    \salon
  \end{scope}
  \begin{scope}[xshift=2cm,yshift=5.45cm]
    \bureau
  \end{scope}
\end{tikzpicture}
\end{document}

alt text

Lien permanent

Publiée 01 Fév '22, 10:42

samcarter's gravatar image

samcarter
8.2k2817
Taux d'acceptation : 57%

Modifiée 01 Fév '22, 10:50

Donc il suffit de préciser cm pour l'environnement scope, dans la mesure ou le cm est l'unité implicite «ailleurs». Merci

(02 Fév '22, 15:46) joseph-tux joseph-tux's gravatar image
2

@jospeh-tux Une autre possibilité : \begin{scope}[shift={(2,5.45)}]

(02 Fév '22, 15:50) samcarter samcarter's gravatar image

Plus lisible et concis, plus encore avec l'utilisation de calc. (en effet dans mon projet je dois systématiquement ajouter 1cm en x et en y )

(02 Fév '22, 15:58) joseph-tux joseph-tux's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.