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 17:12] – add how to put text above a rectangle 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> 
 +\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> 
 + 
 + 
 +=== Mettre du texte au centre d'un rectangle === 
 + 
 +[[https://tex.stackexchange.com/questions/448164/add-text-within-tikz-rectangle-node|Source]] 
 + 
 +<code latex> 
 +\draw[draw=none,fill=red!40!white,opacity=0.9] (3, 0) rectangle (9.2, 7.5) node[midway,align=center] {foo}; 
 +</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> 
 + 
 + 
 +==== Faire un schéma sur une image ==== 
 + 
 +[[https://tex.stackexchange.com/questions/9559/drawing-on-an-image-with-tikz|Source]] 
 + 
 +<code latex> 
 +\begin{tikzpicture} 
 +    \node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=0.9\textwidth]{some_image.jpg}}; 
 +    \begin{scope}[x={(image.south east)},y={(image.north west)}] 
 +        % Ces trois commandes suivantes permettent d'afficher une grille qui aide à visualiser les coordonnées des éléments à dessiner: 
 +        \draw[help lines,xstep=.1,ystep=.1] (0,0) grid (1,1); 
 +        \foreach \x in {0,1,...,9} { \node [anchor=north] at (\x/10,0) {0.\x}; } 
 +        \foreach \y in {0,1,...,9} { \node [anchor=east] at (0,\y/10) {0.\y}; } 
 +    \end{scope} 
 +\end{tikzpicture} 
 +</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> <code latex>
Ligne 126: Ligne 295:
 </code> </code>
  
 +=== Fixer la taille d'un cercle ===
  
-==== Mettre du texte au-dessus d'un rectangle ====+[[https://tex.stackexchange.com/questions/228364/is-it-possible-to-set-a-maximum-node-width-in-tikz|Source]]
  
-[[https://tex.stackexchange.com/questions/13401/labeling-rectangle-above-rectangle|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> <code latex>
-\draw[orange,ultra thick,rounded corners] (0.316,0.782) rectangle (0.402,0.807); +\begin{tikzpicture}[every node/.style={scale=0.9}] 
-\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+    ... 
 +\end{tikzpicture}
 </code> </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.1626707576.txt.gz
  • Dernière modification : 2021/07/19 17:12
  • de phsw