<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\section{Utilisation de Gnuplot}
%â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“â€“&gt; 
\subsection{MÃ©canisme d'interaction entre \TIKZ\ et \tkzname{Gnuplot}}

\TEX\  est un systÃ¨me logiciel de composition de documents ( text processing programm ). Il permet bien sÃ»r de calculer, mais avec des moyens limitÃ©s. \TIKZ\ est ainsi limitÃ© par \TEX\ pour effectuer des calculs. Pour rappel Â±16383.99999 pt est l'intervalle dans lequel \TEX\ stocke ses valeurs. Sachant que 1 cm est Ã©gal Ã&nbsp; 28.45274 pt, on s'aperÃ§oit que \TEX\ ne  peut traiter que des dimensions infÃ©rieures Ã&nbsp; 5,75 mÃ¨tres environ.
Bien sÃ»r, cela paraÃ®t suffisant, mais malheureusement, pendant un enchaÃ®nement de calculs, il est assez facile de dÃ©passer ces limites.

\bigskip 
 \tkzActivOff  
  \newcommand{\drawpage}[4]{%
  \begin{scope}[xshift=#1, yshift=#2,font=\footnotesize]
    \filldraw[fill=white!75!#4,draw=#4, very thin]%
   (0,0) -- (4.2,0) -- (4.2,4.85) --(3.21,5.84)-- (0,5.84) -- cycle;
   \fill[fill=#4,shade,top color=#4,bottom color=#4!40]%
       (3.21,5.84) -- ++(0,-0.99) -- ++(0.99,0) -- cycle;
    \path (2.1,2.97) node{#3};
  \end{scope}
}

\begin{center}
\begin{tikzpicture}[&gt;=triangle 45,scale=.75]
\drawpage{0cm}{0cm}{\texttt\blue\begin{minipage}{2cm}
sample.tex

with

\tkzcname{draw plot[id=fct] function{---.};}
\end{minipage}}{blue}
\drawpage{12cm}{0cm}{\texttt \red sample.fct.gnuplot}{red}
\drawpage{12cm}{-14cm}{\texttt\red sample.fct.table}{red}
\drawpage{0cm}{-14cm}{\texttt\blue\begin{minipage}{2cm}
sample.pdf 

\bigskip 
\shorthandoff{:}
 \begin{tikzpicture}[domain=-1.5:.8]
  \draw plot[id=f1,samples=200] function{x*x}; 
 \end{tikzpicture}
\end{minipage}}{blue} 

\path (8.05,2.9) node(A) 
     [diamond,%
      draw,color   = black,
      fill         = red!60,%
      text         = black,%
      minimum size = 3 cm,%
      font         = \normalsize] 
     {{\texttt \tikzname-\TEX}};  
  \path (14.1,-4.08) node(B) 
     [diamond,%
      draw,color=black,fill=green!60,%
      text = black,%
      minimum size = 3 cm,%
      font         = \normalsize] 
     {{\texttt gnuplot}};
  \path (8.05,-11.1) node(C) 
     [diamond,%
      draw,color   = black,
      fill         = red!60,%
      text         = black,%
      minimum size = 3 cm,%
      font         = \normalsize] 
     {{\texttt \tikzname-\TEX}};   
  \draw[-&gt;] (4.2,2.9) -- (A.west);
  \draw[-&gt;] (A.east) -- (12,2.9);
  \draw[-&gt;] (14.1,0) -- (B.north); 
  \draw[-&gt;] (B.south) -- (14.1,-8.18);
  \draw[-&gt;] (12 ,-11.1)--(C.east);
  \draw[-&gt;] (C.west)--(4.2,-11.1); 
  \draw[-&gt;,magenta] (4.2,2.9) to [ out =-80,in=260] node[below,pos=.5]{Ã©tape 1} (12,2.9);
  \draw[-&gt;,magenta] (14.1,0) to [ out =200,in=160] node[left,pos=.5]{Ã©tape 2} (14.1,-8.18);   
  \draw[-&gt;,magenta] (12 ,-11.1) to [ out =110,in=70] node[above,pos=.5]{Ã©tape 3} (4.2,-11.1); 
  \end{tikzpicture}
\end{center}

\newpage 

Pour tracer des courbes en 2D en contournant ces problÃ¨mes, un moyen simple offert par \TIKZ, est d'utiliser \tkzname{gnuplot}. 

 \tkzname{tkz-fct.sty}  s'appuie sur le programme \tkzname{gnuplot} et le package  \tkzname{fp.sty}. Le premier est utilisÃ© pour obtenir une liste de points, et le second pour Ã©valuer ponctuellement des valeurs.
 
 Vous devez donc installer \tkzname{Gnuplot},  son installation dÃ©pend de votre systÃ¨me, puis  il faudra que votre distribution trouve \tkzname{Gnuplot}, et que  \TeX\  autorise \tkzname{Gnuplot} Ã&nbsp; Ã©crire un fichier.

\begin{itemize}
\item \textcolor{red}{\textbf{Ã‰tape 1}}

On part du fichier \tkzname{sample.tex} suivant :

\medskip    
\begin{tkzltxexample}[]  
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw plot[id=f1,samples=200,domain=-2:2] function{x*x};
\end{tikzpicture}
\end{document}
\end{tkzltxexample} 
 \tkzActivOn

La compilation de ce fichier crÃ©Ã© avec \TIKZ, produit un fichier nommÃ©    \tkzname{sample.f1.gnuplot}. Le nom du fichier est obtenu Ã&nbsp; partir de \tkzcname{jobname} et de l'option \tkzname{id}. Ainsi un mÃªme fichier peut crÃ©er plusieurs fichiers distincts. C'est un fichier texte ordinaire, affectÃ© de l'extension \tkzname{gnuplot}. Il contient un prÃ©ambule indiquant Ã&nbsp; \tkzname{gnuplot} qu'il doit crÃ©er une table contenant les coordonnÃ©es d'un certain nombre de points obtenu par la fonction dÃ©finie par $x\longrightarrow x^2$. Ce nombre de points est dÃ©fini par l'option \tkzname{samples}. Cette Ã©tape ne prÃ©sente aucune difficultÃ© particuliÃ¨re. Le fichier obtenu peut Ãªtre traitÃ© manuellement avec \tkzname{gnuplot}.  Le rÃ©sultat est le fichier suivant : 

\begin{tkzltxexample}[]  
set table; set output "sample.f1.table"; set format "%.5f"
set samples 200; plot [x=-2:2] x*x  
\end{tkzltxexample} 

Une table sera crÃ©Ã©e et enregistrÃ©e dans un fichier texte nommÃ© "sample.f1.table". Les nombres seront formatÃ©s pour ne contenir que 5 dÃ©cimales.
La table contiendra 201 couples de coordonnÃ©es. 
 
\item  \textcolor{red}{\textbf{Ã‰tape 2}} 

Elle est la plus dÃ©licate car  le fichier \tkzname{sample.f1.gnuplot} doit Ãªtre ouvert par \tkzname{gnuplot}. Cela implique d'une part, que   \TEX\  autorise l'ouverture\footnote{c'est ici que l'on parle des options \tkzname{--shell-escape} et \tkzname{--enable-write18}}
   du  fichier \tkzname{sample.f1.gnuplot} par \tkzname{gnuplot} et d'autre part, que   \TEX\ puisse trouver \tkzname{gnuplot}\footnote{c'est ici que l'on parle de \tkzname{PATH}}. 

Si \tkzname{gnuplot} trouve \tkzname{sample.f1.gnuplot} alors il produit un fichier texte \tkzname{sample.f1.table} si l'expression de la fonction est correcte.

 \item \textcolor{red}{\textbf{Ã‰tape 3}} 
 
 Le fichier \tkzname{sample.f1.table} obtenu Ã&nbsp; l'Ã©tape prÃ©cÃ©dente est utilisÃ© par \TIKZ\ pour tracer la courbe.
 
\medskip\hspace{1cm}    
\begin{tkzltxexample}[]   
# Curve 0 of 1, 201 points
# Curve title: "x*x"
# x y type
-2.00000 4.00000  i
-1.98000 3.92040  i
-1.96000 3.84160  i
---.
1.98000 3.92040  i
2.00000 4.00000  i 
\end{tkzltxexample} 
\end{itemize}

\begin{enumerate}

\item  Il faut remarquer qu'au cours d'une seconde compilation, si le fichier  \tkzname{sample.f1.gnuplot} ne change pas, alors \tkzname{gnuplot} n'est pas lancÃ© et le fichier prÃ©sent \tkzname{sample.f1.table} est utilisÃ©.

\item On peut aussi remarquer  que si vous Ãªtes paranoÃ¯aque et que vous n'autorisez pas le lancement de gnuplot, alors une premiÃ¨re compilation permettra de crÃ©er le fichier \tkzname{sample.f1.table}, ensuite manuellement, vous pourrez lancer gnuplot  et obtenir le fichier \tkzname{sample.f1.table}.

\item Il est aussi possible de crÃ©er manuellement ou encore avec un quelconque programme, un fichier data.table que \TIKZ\ pourra lire avec

\begin{tkzltxexample}[]
  \draw plot[smooth] file {data.table};  
\end{tkzltxexample}
\end{enumerate}

\subsection{Installation de \tkzname{Gnuplot}} 

Gnuplot est proposÃ© avec la plupart des distributions Linux, et existe pour OS X ainsi que pour Windows. 

\begin{enumerate}
  \item \tkzname{Ubuntu}\NameSys{Linux Ubuntu} ou un autre systÃ¨me Linux: on l'installe en suivant la procÃ©dure classique d'installation d'un nouveau paquetage. 
  \item \tkzname{Windows}\NameSys{Windows XP}  Les utilisateurs de Windows doivent se mÃ©fier, aprÃ¨s avoir tÃ©lÃ©chargÃ© la bonne version et installÃ© \tkzname{gnuplot} alors il faudra  renommÃ© wgnuplot en gnuplot. Ensuite il faudra modifier le \tkzname{path}. Si le chemin du programme est \shorthandoff{:}\tkzname{C:\textbackslash gnuplot} alors il faudra ajouter   \tkzname{{C:}\textbackslash gnuplot\textbackslash bin\textbackslash}\shorthandon{:}  aux variables environnement (Aller Ã&nbsp; "Poste de Travail" puis faire "propriÃ©tÃ©s", dans l'onglet "AvancÃ©", cliquer sur "Variables d'environnement". ). 
Ensuite pour compiler sous latex, il faudra ajouter au script de compilation l'option  \tkzname{--enable-write18 }. 
  \item  \tkzname{OS X}\NameSys{OS X}  C'est le systÃ¨me  qui pose le plus  de problÃ¨me, car il faut compiler les sources. 
\end{enumerate}

\subsection{ Test de l'installation de tkz-base}
Enregister le code suivant dans un fichier avec le nom test.tex, puis compiler avec pdflatex ou bien lualatex. Vous devez obtenir cela :
   

\begin{tkzltxexample}[]
\documentclass{scrartcl}
\usepackage{tkz-fct}
\begin{document}
  \begin{tikzpicture}
      \tkzInit[xmin=-5,xmax=5,ymax=2]
      \tkzGrid
      \tkzAxeXY
  \end{tikzpicture}
\end{document}    
\end{tkzltxexample}

  \begin{tikzpicture}
      \tkzInit[xmin=-5,xmax=5,ymax=2]  
      \tkzGrid
      \tkzAxeXY
   \end{tikzpicture} 



\subsection{ Test de l'installation de tkz-fct}
Il suffit d'ajouter une ligne pour tracer la reprÃ©sentation graphique d'une fonction.

\begin{tkzltxexample}[]
\documentclass{scrartcl}
\usepackage[usenames,dvipsnames]{xcolor}
 \usepackage{tkz-fct}
  \begin{document}
    \begin{tikzpicture}[scale=1.25]
      \tkzInit[xmin=-5,xmax=5,ymax=2]
      \tkzGrid
      \tkzAxeXY
      \tkzFct[color=red]{2*x**2/(x**2+1)}
     \end{tikzpicture}
 \end{document}
\end{tkzltxexample}

\begin{tkzexample}[] 
\begin{tikzpicture}[scale=1.25]
    \tkzInit[xmin=-5,xmax=5,ymax=2]
    \tkzGrid
    \tkzAxeXY
    \tkzFct[color=red]{2*x**2/(x**2+1)}
 \end{tikzpicture}     
\end{tkzexample} 
\endinput</pre></body></html>