% Fichier CARNOTPS.TEX : Documentation de CARNOTPS.MAC
% Michel Quercia 08/10/95

\input carnotps.mac
\defverbatimchars [][]
\def\P{{\smc Postscript}}

\cadrejoli\w=\hsize\m=5mm{\gros\bf Documentation de \bftt CARNOTPS.MAC}
\SV

[carnotps.mac] est un jeu de macros \TeX\ permettant d'obtenir quelques effets
spéciaux~:
déformation de texte, grisage, fond de page, bibliothèque de dessins,~\dots
Ces effets ne peuvent être observés et imprimés qu'après conversion en
\P\ du fichier [.dvi] produit par \TeX~; {\it ils ne sont donc pas reconnus
par le pilote DVIWINDO}.
Par ailleurs, un jeu de macros spécialisé dans les truquages \P,
[pstricks], est fourni avec {\smc emTeX}~; il est compatible avec
[carnotps.mac].
Pour utiliser [carnotps.mac], vous devez l'appeler par~:
\sv\indent[\input carnotps.mac]
\sv\noindent placé au début de votre fichier [.tex]. [carnotps.mac] appelle
automatiquement  [carnot.mac], donc il n'est pas utile (mais pas nuisible
non plus) d'appeler ce dernier dans votre fichier.
\sv

% Bibliothèque ---------------------------------------------------------------
\vfil
\advance\leftskip 7mm
\noindent\hskip-7mm \souligne{\gros\it Bibliothèque de dessins}\sv\noindent
On dispose de 7 dessins prédéfinis que l'on appelle par~:
\sv\indent[\ps{]{\it nom,taille-h,taille-v,matrice,gris}[}]
\par\indent[\ps*{]{\it nom,taille-h,taille-v,matrice,gris}[}]

\sv{\parindent=0pt\advance\leftskip7mm
{\it nom} est le nom du dessin. C'est le seul paramètre obligatoire.\par
{\it taille-h} est la largeur désirée, c'est une dimension au sens \TeX.\par
{\it taille-v} est la hauteur désirée, c'est une dimension au sens \TeX.\par
{\it matrice}  est la matrice d'une application linéaire à appliquer
               au dessin. Elle est constituée de 4 nombres réels séparés
               par des blancs avec la convention~:
               [a b c d] représente la matrice $\psmatrix{a&c\cr b&d\cr}$.
               Il est souhaitable que cette matrice soit inversible, mais il
               n'y a pas de plantage si ce n'est pas le cas.\par
{\it gris} est le niveau de gris souhaité. C'est un nombre entier compris entre
           0 (noir) et 100 (blanc).\par}
\sv
Pour ommettre un paramètre facultatif, placer deux virgules consécutives.
On peut ommettre aussi tous les paramètres facultatifs qui suivent en refermant
l'accolade après le dernier que l'on veut spécifier.
\sv\noindent
Si les deux tailles sont spécifiées, le dessin est déformé par affinité~;
si une seule taille est spécifiée, le dessin est déformé par homothétie et
si aucune taille n'est spécifiée, le dessin garde ses dimensions naturelles.
Ces dimensions sont accessibles par les macros [\]{\it nom}[w] (largeur) et
[\]{\it nom}[h] (hauteur) où {\it nom} est le nom du dessin.
\sv\noindent
La matrice, quand elle est spécifiée, indique une transformation à appliquer
au dessins {\it après qu'il ait été mis à l'échelle}.
\sv\noindent
Le niveau de gris par défaut est 0.
\sv
La macro [\ps] dispose le dessin et réserve la place nécéssaire, en tenant
compte de la mise à l'échelle et de la transformation linéaire spécifiée.
La macro [\ps*] dispose le dessin mais ne réserve aucune place. Le texte
qui suit sera donc placé par dessus ce dessin.

\vfil\eject
\null\vfil
\halign{&\hfil#\hfil\cr
\ps{lion}&
\ps{lion,,,-1 0 0 1}&
\ps{vache}\cr
%
[\ps{lion}]&
[\ps{lion,,,-1 0 0 1}]&
[\ps{vache}]\cr\noalign{\sv}
%
\ps{carnot}&
\ps{carnot,5cm,\carnoth}&
\ps{vache,,,-1 0 0.5 1}\cr
%
[\ps{carnot}]&
[\ps{carnot,5cm,\carnoth}]&
[\ps{vache,,,-1 0 0.5 1}]\cr\noalign{\sv}
%
\ps{chameau}&
\ps{chameau,,,,30}&
\ps{danger}\cr
%
[\ps{chameau}]&
[\ps{chameau,,,,30}]&
[\ps{danger}]\cr\noalign{\sv}
%
\ps{idee}&
\ps{idee,20pt,,0.866 -0.5 0.5 0.866}&
\ps{erable}\cr
%
[\ps{idee}]&
[\ps{idee,20pt,,0.866 -0.5 0.5 0.866}]&
[\ps{erable}]\cr\noalign{\sv}
%
}
\vfil\eject

% Transformations ---------------------------------------------------------
\noindent\hskip-7mm \souligne{\gros\it Transformations}\sv\noindent
Les commandes~:
\sv\indent[\transforme{]{\it matrice,gris}[}{]{\it texte}[}]
\par\indent[\transforme*{]{\it matrice,gris}[}{]{\it texte}[}]
\sv\noindent
appliquent la transformation indiquée par {\it matrice} au texte spécifié,
et l'impriment avec le niveau de gris indiqué.
La matrice est obligatoire, le niveau de gris est facultatif et vaut 100
par défaut.
La macro [\transforme*] place le texte transformé sans réserver de place,
la macro [\transforme] effectue les calculs et réserve la place nécéssaire.
\sv\sv

\line{\hfil\vbox{\tabskip=1cm\halign{&\hfil#\hfil\cr
\transforme{-1 0 0 -4}{Bonjour}&
\transforme*{4 0 -4 6,70}{\bf Bonjour}%
\transforme{4 0 0 4}{\bf Bonjour}\cr
[\transforme{-1 0 0 -4}{Bonjour}]&
[\transforme*{4 0 -4 6,70}{\bf Bonjour}%]\cr
&[\transforme{4 0 0 4}{\bf Bonjour}]\hfill\cr
}}\hfil}

% Grisage --------------------------------------------------------------------
\noindent\hskip-7mm \souligne{\gros\it Grisage}\sv\noindent
La commande~:
\sv\indent[\grise]{\it options}[{]{\it texte}[}]
\sv\noindent
imprime le texte spécifié sur fond gris. Les options sont celles des
macros d'encadrement~:
[\w=]{\it largeur},
[\h=]{\it hauteur},
[\d=]{\it profondeur},
[\m=]{\it marge},
ainsi qu'une nouvelle option [\g=]{\it gris} permettant de spécifier le
niveau de gris. Par défaut, celui-ci vaut 70.
Comme pour les macros d'encadrement, le texte peut comporter plusieurs lignes
séparées par [\cr]. On peut aussi placer un paragraphe dans une boite et la
transmettre à [\grise] pour bénéficier de la césure automatique.
\sv

{\setbox0=\vbox{%
[\grise\m=5mm{%
Les oisillons, las de l'entendre,\cr
Se mirent à jaser aussi confusément\cr
Que faisaient les Troyens, quand la pauvre Cassandre\cr
Ouvrait la bouche seulement.\cr
\noalign{\sv}
\smc La Fontaine, \it L'Hirondelle et les Petits Oiseaux.\cr
}]}
\setbox1=\hbox{\grise\m=5mm{%
Les oisillons, las de l'entendre,\cr
Se mirent à jaser aussi confusément\cr
Que faisaient les Troyens, quand la pauvre Cassandre\cr
Ouvrait la bouche seulement.\cr
\noalign{\sv}
\hfill \smc La Fontaine, \it L'Hirondelle et les Petits Oiseaux.\cr
}}
\centerline{\vbox{\halign{&\hfil#\hfil\cr\box1\cr\box0\hidewidth\cr}}}
}

% Placement ----------------------------------------------------------------
\noindent\hskip-7mm \souligne{\gros\it Placement}\sv\noindent
Les commandes~:
\sv\indent[\place][{]{\it $x$,$y$,texte}[}]
\par\indent[\place*][{]{\it $x$,$y$,texte}[}]
\sv\noindent
placent le texte spécifié à la position relative $(x,y)$.
$x$ et $y$ doivent être des dimensions reconnues par \TeX.
[\place] réserve la place nécéssaire, [\place*] ne réserve pas d'espace.
\sv

{\setbox0=\hbox{%
\cadrefin\m=0mm{%
\place*{0cm,0cm,zéro}%
\place*{1cm,0cm,un}%
\place*{0cm,1cm,deux}%
\place{1cm,1cm,trois}}}
%
\setbox1=\vbox{%
[\cadrefin\m=0mm{%
\place*{0cm,0cm,zéro}%
\place*{1cm,0cm,un}%
\place*{0cm,1cm,deux}%
\place{1cm,1cm,trois}}]}
\wd1=7cm
%
\centerline{\valign{\vfil#\vfil\cr\box1\cr\box0\cr}}
}

% cadres jolis --------------------------------------------------------------
\noindent\hskip-7mm \souligne{\gros\it Nouveaux cadres}\sv\noindent
La collection de cadres de [carnot.mac] s'enrichit de deux nouveaux
éléments~:\sv

\line{\hfil
\cadrejoli\w=4cm{\tt\char92 cadrejoli}\hfil
\cadreJoli\w=4cm{\tt\char92 cadreJoli}\hfil}
\sv

% Fond de page --------------------------------------------------------------
\noindent\hskip-7mm \souligne{\gros\it Fond de page}\sv\noindent
On peut placer dans la variable [\fondpage] du matériel qui sera composé
sur le fond de chaque page.
Le fond de la page présente a été obtenu avec le code~:
\sv{\parindent=0pt
[\fondpage={%
  \ifnum\pageno=4
     \vbox to \vsize{
        \vfil
        \centerline{\transforme{7 9.9 -9.9 7,70}{\tt carnot.mac}}
        \vfil
     }%
  \fi
}]}
\fondpage={%
  \ifnum\pageno=4
     \vbox to \vsize{
        \vfil
        \centerline{\transforme{7 9.9 -9.9 7,70}{\tt carnot.mac}}
        \vfil
     }%
  \fi
}

\vfil\rightline{document mis à jour le \date}\eject

\bye
