Avec L'exemple ci-dessous dessine un arc et récupère les coordonnées de l'extrémité de l'arc qui est le point courant une fois l'arc dessiné, puis les affiche. Elle sont en points (pt). Un cercle rouge est dessiné sur ce point en utilisant ces coordonnées récupérées. Il est bien positionné alors que les unités utilisées ne sont pas des centimètres. Je pensais que par défaut l'unité pour les coordonnées était le centimètre, alors je suis un peu surpris. Comment se fait-il que le point soit bien positionné malgré tout ? Les valeurs sont stockées et utilisées avec leur unité (le point, je suppose) et la commande Ouvrir dans l'éditeur Overleaf
\documentclass[french,a4paper]{article} \usepackage[]{tikz} \begin{document} \begin{tikzpicture} \draw (1,0) arc (0:90:1); \pgfgetlastxy{\ax}{\ay} (pas de point virgule pour commande pgf) \draw (3,0) node[draw]{$\ax ,\ay$}; \fill[red] (\ax,\ay) circle (5pt); \end{tikzpicture} \end{document} |
Avec l'extension Ouvrir dans l'éditeur Overleaf
\documentclass[french,a4paper]{article} \usepackage[]{tikz} \usepackage{printlen} \uselengthunit{cm} \begin{document} \begin{tikzpicture} \draw (1,0) arc (0:90:1); \pgfgetlastxy{\ax}{\ay} % (pas de point virgule pour commande pgf) \draw (3,0) node[draw]{\rndprintlength{\dimexpr\ax}, \rndprintlength{\dimexpr\ay}}; \fill[red] (\ax,\ay) circle (5pt); \end{tikzpicture} \end{document} Ou plus généralement : Ouvrir dans l'éditeur Overleaf
\documentclass[french,a4paper]{article} \usepackage[]{tikz} \usepackage{printlen} \uselengthunit{cm} \begin{document} \begin{tikzpicture} \draw (1,0) arc (0:90:1); \pgfgetlastxy{\ax}{\ay} % (pas de point virgule pour commande pgf) \fill[red] (\ax,\ay) circle (5pt); \foreach \n [count=\xi] in {cm,mm,pt,pc,in,bp,dd,cc}{ \draw (3,-\xi) node[draw]{\uselengthunit{\n}\rndprintlength{\dimexpr\ax}, \rndprintlength{\dimexpr\ay}}; } \end{tikzpicture} \end{document} Publiée 07 Jul '20, 20:55 samcarter |
Dans les coordonnées présentes dans une instruction de TikZ, on peut mettre une valeur numérique (qui est alors interprétée avec l'unité par défaut) mais on peut aussi mettre une expression avec une unité, ce qui spécifie une longueur. En l'occurrence,
Pour faire la conversion en cm, il existe une macro Comme c'est une macro interne, on doit écrire écrire une sur-macro pour l'utiliser dans le document courant. Je l'ai nommée Ouvrir dans l'éditeur Overleaf
\documentclass[french,a4paper]{article} \usepackage{tikz} \usepackage{xparse} \ExplSyntaxOn \NewDocumentCommand \PtToCm { m } { \dim_to_decimal_in_unit:nn { #1 } { 1 cm } } \ExplSyntaxOff \begin{document} \begin{tikzpicture} \draw (1,0) arc (0:90:1); \pgfgetlastxy{\ax}{\ay} % (pas de point virgule pour commande pgf) \draw (3,0) node[draw]{$\PtToCm{\ax} ,\PtToCm{\ay}$}; \fill[red] (\ax,\ay) circle (5pt); \end{tikzpicture} \end{document} Merci. Et pour afficher la valeur récupérée de la coordonnée en centimètres ?
(07 Jul '20, 17:47)
idefix
|