latex:tikz

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
latex:tikz [2021/07/19 18:15] – add how to plot on a picture phswlatex:tikz [2024/12/10 17:33] (Version actuelle) – [Exemples] add how to make a simple large arrow phsw
Ligne 2: Ligne 2:
  
   * [[http://math.et.info.free.fr/TikZ/bdd/TikZ-Impatient.pdf]]   * [[http://math.et.info.free.fr/TikZ/bdd/TikZ-Impatient.pdf]]
-  * [[https://pgf-tikz.github.io]]+  * [[https://pgf-tikz.github.io/pgf/pgfmanual.pdf]]
   * [[http://pgoutet.free.fr/latex/seance_10/seance_10.pdf]]   * [[http://pgoutet.free.fr/latex/seance_10/seance_10.pdf]]
 +  * [[http://tug.ctan.org/info/visualtikz/VisualTikZ-fr.pdf]]
 +  * [[https://stuff.mit.edu/afs/athena/contrib/tex-contrib/beamer/pgf-1.01/doc/generic/pgf/version-for-tex4ht/en/pgfmanualse9.html]]
  
  
Ligne 119: Ligne 121:
 </code> </code>
  
 +=== Mettre du texte au-dessus d'un rectangle ===
  
-==== Changer la taille d'un node ====+[[https://tex.stackexchange.com/questions/13401/labeling-rectangle-above-rectangle|Source]]
  
 <code latex> <code latex>
-\draw  node[fill,circle,scale=0.3]{} (0,0);+\draw[orange,ultra thick,rounded corners] (0.316,0.782) rectangle (0.402,0.807); 
 +\path (0.316,0.807) --  (0.402,0.807) node[midway,above,orange] {\textbf{A}}; % reprend les coordonnées du côté haut du rectangle
 </code> </code>
  
  
-==== Mettre du texte au-dessus d'un rectangle ====+=== Mettre du texte au centre d'un rectangle ===
  
-[[https://tex.stackexchange.com/questions/13401/labeling-rectangle-above-rectangle|Source]]+[[https://tex.stackexchange.com/questions/448164/add-text-within-tikz-rectangle-node|Source]]
  
 <code latex> <code latex>
-\draw[orange,ultra thick,rounded corners] (0.316,0.782) rectangle (0.402,0.807); +\draw[draw=none,fill=red!40!white,opacity=0.9] (3, 0) rectangle (9.27.5) node[midway,align=center] {foo};
-\path (0.316,0.807) --  (0.402,0.807) node[midway,above,orange] {\textbf{A}}; % reprend les coordonnées du côté haut du rectangle+
 </code> </code>
  
 +
 +=== Rectangle arrondi sans bordure, pivoté, avec texte ===
 +
 +{{ :latex:capture_d_ecran_du_2022-02-08_18-01-18.png|}}
 +  * [[https://tex.stackexchange.com/questions/82530/how-to-draw-a-filled-rectangle-without-a-border-using-tikz]]
 +  * [[https://tex.stackexchange.com/questions/96340/how-to-place-a-textnode-at-the-center-of-a-drawn-rectangle/348951]]
 +  * [[https://tex.stackexchange.com/questions/115554/how-to-rotate-a-tikz-label]]
 +  * [[https://tex.stackexchange.com/questions/45848/rotate-node-text-and-use-relative-positioning-in-tikz]]
 +
 +<code latex>
 +\path[rounded corners,fill=compColor] (x1,y1) rectangle (x2,y2) node[pos=.5,rotate=90] {$n$ computing Threads};
 +</code>
 +
 +=== Faire une étoile avec un éclair ===
 +
 +{{ :latex:capture_d_ecran_du_2022-02-08_17-36-48.png|}}
 +[[https://tex.stackexchange.com/questions/255916/tikz-hand-drawn-explosion]]
 +<code latex>
 +\node[starburst,starburst point height=8pt,fill=red,opacity=0.5,text opacity=1,scale=0.8] at (2, 2) {\huge\Lightning};
 +</code>
 +
 +
 +=== Chemin avec des flèches ===
 +{{ :latex:capture_d_ecran_du_2022-02-08_18-18-28.png|}}
 +  * [[https://latexdraw.com/how-to-draw-an-arrow-in-the-middle-of-a-line-in-tikz/#t-1607758527668]]
 +  * [[https://tex.stackexchange.com/questions/3161/tikz-how-to-draw-an-arrow-in-the-middle-of-the-line]]
 +  * https://www.latex4technics.com/?note=khn6hz
 +<code latex>
 +\newcommand{\arrowOnLine}[1]{node[sloped,pos=#1,allow upside down]{\tikz \draw[->,line width=2pt] (-1pt,0) -- (1pt,0);}}
 +
 +\draw[Round Cap-,line width=2pt,rounded corners,color=commColor] (3.5,0.1)
 +                                            -- (3.5,1.4) \arrowOnLine{0.4}
 +                                            -- (1.4,1.4) \arrowOnLine{0.7}
 +                                            -- (1.4,5) \arrowOnLine{0.5}
 +                                            -- (6.6,5) \arrowOnLine{0.15} \arrowOnLine{0.9}
 +                                            -- (6.6,0.4) \arrowOnLine{0.5}
 +                                            -- (6.2,0) \arrowOnLine{1};
 +
 +</code>
 +
 +
 +=== Nouvelle ligne dans du texte dans un nœud ===
 +
 +L'attribut ''align'' permet de faire fonctionner ''\\'' ([[https://tex.stackexchange.com/questions/24372/how-to-add-newline-within-node-using-tikz|source]]).
 +<code latex>
 +\node[align=center] at (0,0) {Nouvelle\\ligne};
 +</code>
 +
 +
 +=== Faire une grosse flèche ===
 +
 +[[https://tex.stackexchange.com/questions/578524/tikz-how-to-draw-a-fat-arrow-specifying-border-and-fill-colour|Source]]
 +
 +<code latex>
 +\usetikzlibrary{shapes.arrows}
 +
 +\node[
 +    single arrow,
 +    draw=black,
 +    fill=gray,
 +    minimum width=7pt,
 +    single arrow head extend=3pt,
 +    minimum height=7mm,
 +    rotate=-90
 +] at (5, -4.75) {};
 +</code>
  
  
Ligne 154: Ligne 223:
 </code> </code>
  
 +
 +
 +==== Coordonnées ====
 +
 +
 +=== Définir des coordonnées ===
 +
 +[[https://tex.stackexchange.com/questions/246856/how-to-label-the-nodes-coordinates-in-tikz-picture|Source]]
 +
 +<code latex>
 +\coordinate (B) at (210:2);
 +</code>
 +
 +
 +=== Changer l'origine des coordonnées dans le schéma ===
 +
 +Pour faire quelque chose de répétitif sans avoir à changer toutes les coordonnées, par exemple ([[https://tex.stackexchange.com/questions/353855/shifting-origin-0-0-to-new-coordinates-in-tikz|source]]):
 +<code latex>
 +\begin{tikzpicture}
 +    \draw [->, very thick] (0, 0) -- (0,-1);
 +    \tikzset{shift={(0,-1)}}
 +    \draw [->, very thick] (0, 0) -- (0,-1);
 +    \tikzset{shift={(0,-1)}}
 +    \draw [->, very thick] (0, 0) -- (0,-1);
 +\end{tikzpicture}
 +</code>
 +
 +
 +=== Orienter l'axe des ordonnées de haut en bas ===
 +
 +[[https://tex.stackexchange.com/questions/84715/tikz-change-coordinate-system-so-y-points-downwards|Source]]
 +
 +<code latex>
 +\begin{tikzpicture}[yscale=-1]
 +%   0
 +%    +---> x
 +%    |
 +%    |
 +%    v
 +%    y
 +\end{tikzpicture}
 +</code>
 +
 +
 +
 +==== Tailles ====
 +
 +=== Changer la taille d'une figure Tikz ===
 +
 +Le fichier doit avoir l'extension ''.tikz'' ([[https://tex.stackexchange.com/questions/75449/specifying-the-width-and-height-of-a-tikzpicture/320521|source]]) :
 +<code latex>
 +\usepackage{tikzscale}
 +
 +\includegraphics[width=\linewidth]{fichier}
 +</code>
 +<code latex fichier.tikz>
 +\begin{tikzpicture}
 +% ...
 +\end{tikzpicture}
 +</code>
 +
 +Si un message dit que ''fichier'' n'est pas trouvé, il est possible d'utiliser ''resizebox'' :
 +<code latex>
 +\resizebox{\linewidth}{!}{\includegraphics[width=\linewidth]{fichier}}
 +</code>
 +
 +=== Changer la taille d'un node ===
 +
 +<code latex>
 +\draw  node[fill,circle,scale=0.3]{} (0,0);
 +</code>
 +
 +=== Fixer la taille d'un cercle ===
 +
 +[[https://tex.stackexchange.com/questions/228364/is-it-possible-to-set-a-maximum-node-width-in-tikz|Source]]
 +
 +<code latex>
 +\node[draw,circle,text width=7mm,inner sep=0pt,align=center](11) at (3,0) {11};
 +</code>
 +Utiliser le même ''text width=7mm,inner sep=0pt'' pour tous les cercles.
 +
 +
 +=== Réduire la taille de tous les textes ===
 +
 +[[https://tex.stackexchange.com/questions/107057/adjusting-font-size-with-tikz-picture|Source]]
 +
 +<code latex>
 +\begin{tikzpicture}[every node/.style={scale=0.9}]
 +    % ...
 +\end{tikzpicture}
 +</code>
 +
 +
 +==== Générer un PDF à partir de seulement l'image Tikz ====
 +
 +<code latex>
 +\documentclass{standalone}
 +
 +\usepackage{tikz}
 +\usetikzlibrary{calc,arrows,shapes,patterns,snakes,plotmarks,arrows.meta}
 +
 +\begin{document}
 +  \begin{tikzpicture}
 +    % \draw ...
 +  \end{tikzpicture}
 +\end{document}
 +</code>
 +
 +=== Convertir une image Tikz en SVG ===
 +
 +Après avoir un PDF contenant uniquement l'image Tikz :
 +<code bash>
 +pdftocairo -svg test.pdf test.svg
 +</code>
 +''pdftocairo'' est dans le paquet Debian ''poppler-utils''.
  
  
  • latex/tikz.1626711310.txt.gz
  • Dernière modification : 2021/07/19 18:15
  • de phsw