\documentclass[12pt,a4paper,dvips]{article}
\usepackage{t1enc}
\usepackage[latin1]{inputenc}
\usepackage[french]{babel}
\usepackage{pstcol,pst-char,pst-text,pst-plot}
\usepackage{palatino,geometry}
\pagestyle{plain}
\geometry{margin=1.5cm}
\setlength{\parskip}{2pt}
\newpsobject{showgrid}{psgrid}{subgriddiv=1,griddots=10,gridlabels=6pt}
\parindent0pt
\begin{document}
\begin{center}\LARGE \textbf{Insertion de figures (2)}\\
\Large Utilisation de \texttt{PSTricks}\\
\normalsize \textit{Jean-Michel Sarlat -- Mars 2000}
\end{center}
\section{Déclarations}
\texttt{PSTricks} est une collection de fichiers définissant des macros \LaTeX\ permettant
l'insertion d'éléments graphiques (code PostScript) dans un document. Le plus utilisé de ces fichiers est
\texttt{pstcol}.
\begin{verbatim}
\documentclass[a4paper,12pt,dvips]{article}
\usepackage{pstcol}
\end{verbatim}
L'option \texttt{dvips} est passée dans la déclaration de la classe ainsi elle sera accessible à tous les packages
qui nécessitent un driver graphique. La visualisation complète des objets graphiques introduits ne se fera que dans
les fichiers PostScript ou PDF.\\
L'instruction \texttt{showgrid} utilisée dans quelques uns des exemples suivants doit être définie dans le
préambule.
\begin{verbatim}
\newpsobject{showgrid}{psgrid}{subgriddiv=1,griddots=10,gridlabels=6pt}
\end{verbatim}
\section{Un premier exemple}
\begin{pspicture}(0,0)(2,2)
\showgrid
\psline[linewidth=1pt,linecolor=red]
{<->}(0.5,0)(0,1)(1,1.5)(1.5,1)(.5,.5)
\end{pspicture}
\begin{verbatim}
\begin{pspicture}(0,0)(2,2)
\showgrid
\psline[linewidth=1pt,linecolor=red]
{<->}(0.5,0)(0,1)(1,1.5)(1.5,1)(.5,.5)
\end{pspicture}
\end{verbatim}
La lecture du code est immédiate.
\section{Un logo}
On utilise ici les packages \texttt{pstcol} et \texttt{pst-char}.
\begin{center}
\parbox{11cm}{
\definecolor{bleu}{rgb}{.68,.85,.9}
\begin{pspicture}*(0,-1)(10.7,3)
\pscharpath[fillstyle=solid,linecolor=red,fillcolor=bleu,linewidth=2pt]
{\fontsize{1.5in}{1.5in}\selectfont \LaTeX}
\end{pspicture}
}
\end{center}
\begin{verbatim}
\usepackage{pstcol,pst-char} % Dans le préambule
\definecolor{bleu}{rgb}{.68,.85,.9}
\begin{pspicture}(0,0)(10.7,3.5)
\pscharpath[fillstyle=solid,linecolor=red,fillcolor=bleu,linewidth=2pt]
{\fontsize{1.5in}{1.5in}\selectfont \LaTeX}
\end{pspicture}
\end{verbatim}
\section{\'Ecrire le long d'une ligne}
Pour laisser aller son imagination !
{\parindent=5cm
\begin{pspicture}(-4,-3)(3,1)
\psset{linecolor=lightgray}
\pstextpath
{\pscurve(-4,-2)(-2,0)(0,-3)(2,-1)(-4,-3)}
{\color{blue}
Vous pouvez écrire comme vous voulez le long d'une courbe de Bezier, même des maths !}
\end{pspicture}
}
La même sans le support :
{\parindent=5cm
\begin{pspicture}(-4,-3)(3,1)
\psset{linestyle=none}
\pstextpath
{\pscurve(-4,-2)(-2,0)(0,-3)(2,-1)(-4,-3)}
{\color{blue}
Vous pouvez écrire comme vous voulez le long d'une courbe de Bezier, même des maths !}
\end{pspicture}
}
En voici le codage :
\begin{verbatim}
\usepackage{pstcol,pst-text} % Dans le préambule
\begin{pspicture}(-4,-3)(3,1)
\psset{linestyle=lightgray}
\pstextpath
{\pscurve(-4,-2)(-2,0)(0,-3)(2,-1)(-4,-3)}
{\color{blue}
Vous pouvez écrire comme vous voulez le long d'une courbe de Bezier,
même des maths !}
\end{pspicture}
\end{verbatim}
\section{Une courbe, c'est attendu !}
Représentation de $f:x\mapsto \frac34\sqrt{16-x^2}$.
\begin{center}
\parbox{8cm}{
\begin{pspicture}(-4,0)(4,4)
\showgrid
\psplot[plotpoints=200]{-4}{4}{3 4 div 16 x dup mul sub sqrt mul}
\end{pspicture}
}
\end{center}
Voici le source :
\begin{verbatim}
\usepackage{pstcol,pst--plot} % Dans le préambule
\begin{center}
\parbox{8cm}{
\begin{pspicture}(-4,0)(4,4)
\showgrid
\psplot[plotpoints=200]{-4}{4}{3 4 div 16 x dup mul sub sqrt mul}
\end{pspicture}
}
\end{center}
\end{verbatim}
Quelques remarques :
\begin{itemize}
\item L'environnement \texttt{pspicture} est placé dans une \texttt{parbox} de largeur 8cm
afin de pouvoir ensuite le centrer.
\item La syntaxe de \texttt{psplot} est relativement simple : le premier argument (optionnel)
précise le nombre de points utilisés pour le tracé, les deuxième et troisième correspondent
aux valeurs extrèmes de la variable et enfin le dernier est le codage en notation polonaise inverse
de la fonction à représenter (la variable \texttt{x} peut-être rappelée au besoin).
\end{itemize}
Un exemple plus <> !
\begin{center}
\parbox{8cm}{
\begin{pspicture}*(-4,-6)(4,4)
\psset{linecolor=blue}
\psplot[plotpoints=100]{-.9}{4}{x 1 sub x 1 add 1 exch div add}
\psplot[plotpoints=100]{-4}{-1.1}{x 1 sub x 1 add 1 exch div add}
\psset{linecolor=black}
\psaxes(0,0)(-3,-5)(3,3)
\psline[linewidth=1.5pt]{->}(-4,0)(4,0)
\psline[linewidth=1.5pt]{->}(0,-6)(0,4)
\psline{-}(-1,-6)(-1,4)
\psline{-}(-4,-5)(4,3)
\rput(2,-2){$\displaystyle f(x)=\frac{x^2}{x+1}$}
\rput(-3,-3){$y=x+1$}
\end{pspicture}
}
\end{center}
Voici le code documenté :
{\footnotesize
\begin{verbatim}
\begin{pspicture}*(-4,-6)(4,4) % * force le masquage de la figure aux dimensions indiquées
\psset{linecolor=blue} % Choix du bleu pour les tracés
\psplot[plotpoints=100]{-.9}{4}{x 1 sub x 1 add 1 exch div add} % Première branche
\psplot[plotpoints=100]{-4}{-1.1}{x 1 sub x 1 add 1 exch div add} % Seconde branche
\psset{linecolor=black} % On revient au nir par défaut
\psaxes(0,0)(-3,-5)(3,3) % Tracé des axes avec unités
\psline[linewidth=1.5pt]{->}(-4,0)(4,0) % Des axes comme on les aime avec une flèche !
\psline[linewidth=1.5pt]{->}(0,-6)(0,4) % axe des y
\psline{-}(-1,-6)(-1,4) % Une asymptote
\psline{-}(-4,-5)(4,3) % Une autre
\rput(2,-2){$\displaystyle f(x)=\frac{x^2}{x+1}$} % une légende
\rput(-3,-3){$y=x+1$} % une légende
\end{pspicture} % C'est fini !
\end{verbatim}
}
\section{La colombe poignardée et le jet d'eau}
Poème de Guillaume Apollinaire formaté par Denis Girou selon l'original et adapté ici à la fonte Palatino.
\begin{center}
\parbox{10cm}{
\begin{pspicture}(9,12)
\psset{xunit=1.25cm,yunit=1.25cm}
\small
\psset{linestyle=none}
\pstextpath[r]{\pscurve(1.5,8)(3,9)(4.45,6.5)}
{Tous les souvenirs de naguère}
\pstextpath[r]{\pscurve(1,7)(2,7.5)(4.45,6)}
{O mes amis partis en guerre}
\pstextpath[r]{\pscurve(1,6)(2,6.7)(4.45,5.2)}
{Jaillissent vers le firmament}
\pstextpath[r]{\pscurve(0.8,5)(2,5.8)(4.45,4.4)}
{Et vos regards en l'eau dormant}
\pstextpath[r]{\pscurve(1,4.3)(2,5)(4.45,3.8)}
{Meurent mélancoliquement}
\pstextpath[r]{\pscurve(0.3,3.2)(2,4.3)(4.45,3.3)}
{Où sont-ils Braque et Max Jacob}
\pstextpath[r]{\pscurve(0.2,2.7)(2,3.5)(3.8,3.2)(4.45,2.8)}
{Derain aux yeux gris comme l'aube}
\rput(4.5,7.3){\bfseries\Huge ?}
\pstextpath[l]{\pscurve(4.55,6.5)(6.5,8.7)(7.8,8)}
{Où sont Raynal Billy Dalize}
\pstextpath[l]{\pscurve(4.55,5.8)(6.5,7.5)(8.3,6.4)}
{Dont les noms se mélancolisent}
\pstextpath[l]{\pscurve(4.55,5.2)(6.5,6.6)(7.6,6.4)(8.2,5.2)(8.5,5.4)}
{Comme des pas dans une église}
\pstextpath[l]{\pscurve(4.55,4.5)(6.5,5.8)(8.5,4.7)}
{Où est Cremnitz qui s'engagea}
\pstextpath[l]{\pscurve(4.55,3.8)(6.5,4.7)(8.5,4)}
{Peut-être sont-ils morts déjà}
\pstextpath[l]{\pscurve(4.55,3.2)(6.5,4.2)(9,2.8)}
{De souvenirs son âme est pleine}
\pstextpath[l]{\pscurve(4.55,2.4)(5,3)(6.5,3.5)(8.8,2.3)}
{Le jet d'eau pleure sur ma peine}
\pstextpath[c]{\pscurve(-0.1,1.4)(4.5,2.2)(9,1.4)}
{{\footnotesize\scshape Ceux qui sont partis à la guerre au nord se battent maintenant}}
\pstextpath[c]{\pscurve(2.1,1.2)(4.5,0.8)(6.9,1.3)}
{Le soir tombe {\bfseries\Huge O} sanglante mer}
\pstextpath[c]{\pscurve(0,1)(4.5,0)(9,1)}
{Jardins où saignent abondamment le laurier rose fleur guerrière}
\end{pspicture}
}
\end{center}
\end{document}