summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/boites
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:52:22 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:52:22 +0000
commit9d1126f12ee0e24f6898fe94293f2bd91207b263 (patch)
treea26797d34d847de5309830a4a0064ced12dfa94e /Master/texmf-dist/tex/latex/boites
parentf8e2ac55663ab505cda64a3ecf5f27f5852c1fe1 (diff)
boites
git-svn-id: svn://tug.org/texlive/trunk@718 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/boites')
-rw-r--r--Master/texmf-dist/tex/latex/boites/boites.sty230
-rw-r--r--Master/texmf-dist/tex/latex/boites/boites_exemples.sty103
2 files changed, 333 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/boites/boites.sty b/Master/texmf-dist/tex/latex/boites/boites.sty
new file mode 100644
index 00000000000..e05373bd9dc
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/boites/boites.sty
@@ -0,0 +1,230 @@
+% boites.sty
+% (c) 1998-1999 Vincent Zoonekynd <zoonek@math.jussieu.fr>
+% Distributed under the GNU Public Licence
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Mars 1999 : Il y a certaines lignes à ne pas numéroter (par
+%% exemple, celles qui ne contiennent que des espaces
+%% verticaux avant ou après une énumération).
+%% Mars 1999 : commentaires
+%%
+%% Modifiations par VZ, Juillet 1998
+%%
+%% Il y a quelques bugs, en particulier des traits qui sont trop
+%% longs, trop courts, trop épais ou trop fins. Si Quelqu'un sait à
+%% quoi c'est dû, qu'il me le dise.
+%%
+%% Il ne devrait plus y avoir de problème à cause d'un environement de
+%% type liste (itemize, enumerate, etc.) à l'intérieur des boites.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% D'après :
+% eclbkbox.sty by Hideki Isozaki, 1992
+% Date: May 28, 1993
+
+\ProvidesFile{boites.sty} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ProvidesPackage{boites} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newbox\bk@bxb
+\newbox\bk@bxa
+\newif\if@bkcont
+\newif\ifbkcount
+\newcount\bk@lcnt
+
+\def\breakboxskip{2pt}
+\def\breakboxparindent{1.8em}
+
+%% Paramètres modifiables
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\bkvz@before@breakbox{\ifhmode\par\fi\vskip\breakboxskip\relax} %%%
+
+% Ce que l'on met à gauche du texte, par exemple, une ligne verticale
+% pour faire un cadre, ou une ligne qui ondule.
+\def\bkvz@left{\vrule \@width\fboxrule\hskip\fboxsep} %%%%%%%%%%%%%%%%%
+
+% De même, ce que l'on met à droite,
+\def\bkvz@right{\hskip\fboxsep\vrule \@width\fboxrule} %%%%%%%%%%%%%%%%
+
+% en haut
+\def\bkvz@top{\hrule\@height\fboxrule} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ou en bas
+\def\bkvz@bottom{\hrule\@height\fboxrule} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Si vous modifiez l'une de ces macros, il ne faut pas oublier de
+% modifier aussi la suivante, qui change la valeur de \linewidth en
+% lui retirant la largeur de tout ce que l'on vient de mettre sur le
+% côté.
+\def\bkvz@set@linewidth{\advance\linewidth -2\fboxrule %%%%%%%%%%%%%%%%
+ \advance\linewidth -2\fboxsep} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% FIN DES PARAMÈTRES MODIFIABLES
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Le début de l'environement
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\breakbox{%
+ % On n'est pas nécessairement en mode vertical.
+ % C'est \bkvz@before@breakbox qui s'en occupe (ou non).
+\bkvz@before@breakbox
+ % on met tout dans une \vbox (\bk@bxb)
+\setbox\bk@bxb\vbox\bgroup
+ % À l'intérieur de cette \vbox, on change la valeur de \hsize (et
+ % aussi \linewidth).
+\bkvz@set@linewidth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\hsize\linewidth
+ % je ne sais pas ce que fait la commande \@parboxrestore.
+\@parboxrestore
+ % On indente éventuellement, si l'utilisateur le désire.
+\parindent\breakboxparindent\relax}
+
+%% On coupe la boite
+%%%%%%%%%%%%%%%%%%%%%%
+% \@tempdimb: amount of vertical skip
+% between the first line (\bk@bxa) and the rest (\bk@bxb)
+\def\bk@split{%
+ % On calcule la hauteur totale (hauteur + profondeur) de la boite.
+\@tempdimb\ht\bk@bxb % height of original box
+\advance\@tempdimb\dp\bk@bxb
+ % On coupe, à l'aide de la commande \vsplit... to 0pt
+ % Le morceau du haut se retrouve dans \bk@bxa,
+ % celui du bas dans \bk@bxb.
+\setbox\bk@bxa\vsplit\bk@bxb to\z@ % split it
+ % L'un des problèmes, c'est que la première boite a une hauteur vide.
+ % On peut lui redonner sa hauteur initiale grace à \vbox{\unvbox...}
+\setbox\bk@bxa\vbox{\unvbox\bk@bxa}% recover height & depth of \bk@bxa
+ % L'autre problème, c'est que l'on a perdu l'espace (interligne) entre
+ % nos deux boites. Pour le récupérer, on ajoute la hauteur de ces deux
+ % boites, et on fait la différence avec la hauteur initiale.
+\setbox\@tempboxa\vbox{\copy\bk@bxa\copy\bk@bxb}% naive concatenation
+\advance\@tempdimb-\ht\@tempboxa
+\advance\@tempdimb-\dp\@tempboxa
+ % Désormais, \@tempdimb contient l'espace entre les deux boites, que
+ % l'on utilisera avec \bk@addskipdp.
+}% gap between two boxes
+
+%% Rajouter \fboxsep à la première ligne
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \@tempdima: height of the first line (\bk@bxa) + fboxsep
+\def\bk@addfsepht{%
+ \setbox\bk@bxa\vbox{\vskip\fboxsep\box\bk@bxa}}
+
+%% cette macro n'est pas utilisée
+\def\bk@addskipht{%
+ \setbox\bk@bxa\vbox{\vskip\@tempdimb\box\bk@bxa}}
+
+%% Rajouter \fboxsep à la dernière ligne
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \@tempdima: depth of the first line (\bk@bxa) + fboxsep
+\def\bk@addfsepdp{%
+ \@tempdima\dp\bk@bxa
+ \advance\@tempdima\fboxsep
+ \dp\bk@bxa\@tempdima}
+
+%% Rajouter l'espace qui a été perdu par \vsplit... to 0pt
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \@tempdima: depth of the first line (\bk@bxa) + vertical skip
+\def\bk@addskipdp{%
+ \@tempdima\dp\bk@bxa
+ \advance\@tempdima\@tempdimb
+ \dp\bk@bxa\@tempdima}
+
+%% On ne compte pas toutes les lignes, mais uniquement celles qui en
+%% sont vraiment. J'ai pris comme critère une largeur supérieure à
+%% 1mm. La même distance se retrouve un peu plus loin, dans
+%% \bk@line.
+\def\bkvz@countlines{%
+ \ifdim\wd\bk@bxa>1mm\advance\bk@lcnt\@ne\fi
+}
+
+%% Afficher la ligne que l'on vient de couper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\bk@line{%
+ \hbox to \linewidth{%
+ \ifdim\wd\bk@bxa>1mm %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ifbkcount\smash{\llap{\the\bk@lcnt\ }}\fi
+ \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \bkvz@left %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \box\bk@bxa
+ % Il arrive que la boite ne soit pas aussi large que la ligne
+ % (par exemple, espace avant une énumération)
+ \hfil %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \bkvz@right}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% La fin de l'environement
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\endbreakbox{%
+ % On ferme la \vbox (\bk@bxb)
+\egroup
+%\ifhmode\par\fi
+{\noindent
+ % On remet le compteur de lignes à un.
+\bk@lcnt 0%
+ % Le booléen que nous allons utiliser dans la boucle plus loin.
+\@bkconttrue
+ % Comme on va empiler des boites, on met certains ressorts à zéro,
+ % pour éviter les espaces verticaux non désirés.
+\baselineskip\z@
+\lineskiplimit\z@
+\lineskip\z@
+\vfuzz\maxdimen
+ % On coupe la boite
+\bk@split
+ % On ajoute un peu d'espace vertical (\fboxsep) au dessus
+\bk@addfsepht
+ % On ajoute en dessous l'espace qui avait été perdu par la commande
+ % \vsplit.
+\bk@addskipdp
+ % De deux choses l'une,
+\ifvoid\bk@bxb
+ % Soit, il n'y a qu'une ligne
+\def\bk@fstln{%
+ % On rajoute un peu d'espace (\fboxsep) en dessous.
+\bk@addfsepdp
+ % On construit la boite : le haut, le milieu (qui contient la gauche
+ % et la droite) et le bas.
+\bkvz@countlines
+\vbox{\bkvz@top\bk@line\bkvz@bottom}}% %%%%%%%%%%%%%%%%%%%%%%%%%%
+ % Soit, il y en a plusieurs.
+\else
+\def\bk@fstln{%
+ % On met le haut
+\bkvz@countlines
+\vbox{\bkvz@top\bk@line}% %%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % ??? (Si on l'enlève, ça ne marche plus.)
+\hfil
+ % On commence à compter les lignes
+%\advance\bk@lcnt\@ne %%%%%%%%%%%%%%%%%%%% Voir \bkvz@countlines
+ % Début de la boucle
+\loop
+ % On coupe ce qui reste de la boite.
+ \bk@split
+ % On rajoute l'espace vertical qui a été perdu.
+ \bk@addskipdp
+ % Éventuellement, on augmente le numéro de la ligne
+ \bkvz@countlines
+ % ???
+\leavevmode
+ % S'il s'agit de la dernière ligne
+\ifvoid\bk@bxb
+ % On met le booléen indiquant que la boucle doit se poursuivre à FAUX.
+ \@bkcontfalse
+ % On met un peu d'espace vertical (\fboxsep)
+ \bk@addfsepdp
+ % En envoie la dernière ligne.
+ % POURQUOI \vtop ??? Pour que l'éventuel numéro de ligne soit à la
+ % bonne hauteur.
+ \vtop{\bk@line\bkvz@bottom}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\else % 2,...,(n-1)
+ \bk@line
+\fi
+ \hfil
+ %\advance\bk@lcnt\@ne %%%%%%%%%%%%%%%% Voir \bkvz@countlines
+\if@bkcont\repeat}%
+\fi
+\leavevmode\bk@fstln\par}\vskip\breakboxskip\relax}
+
+\bkcountfalse
+
diff --git a/Master/texmf-dist/tex/latex/boites/boites_exemples.sty b/Master/texmf-dist/tex/latex/boites/boites_exemples.sty
new file mode 100644
index 00000000000..428df5039d6
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/boites/boites_exemples.sty
@@ -0,0 +1,103 @@
+% boites_examples.sty
+% (c) 2001 Vincent Zoonekynd <zoonek@math.jussieu.fr>
+% distributed under the GNU Public Licence
+
+\ProvidesFile{boites_exemples.sty}
+\ProvidesPackage{boites_exemples}
+\RequirePackage{boites}
+
+%% Première modification
+
+\def\boiteepaisseavecuntitre#1{%
+ \def\thickhrulefill{\leavevmode \leaders \hrule height 1pt \hfill \kern \z@}%
+ \def\bkvz@before@breakbox{\ifhmode\par\fi\vskip\breakboxskip\relax}%
+ \fboxrule=2pt
+ \def\bkvz@set@linewidth{\advance\linewidth -2\fboxrule
+ \advance\linewidth -2\fboxsep}%
+ \def\bkvz@left{\vrule \@width\fboxrule\hskip\fboxsep}%
+ \def\bkvz@right{\hskip\fboxsep\vrule \@width\fboxrule}%
+ \def\bkvz@top{\hbox to \hsize{%
+ \vrule\@width\fboxrule\@height 1.2pt %%% D'où vient ce 0.2pt ????
+ \thickhrulefill{#1}\thickhrulefill
+ \vrule\@width\fboxrule\@height 1.2pt}}%
+ \def\bkvz@bottom{\hrule\@height\fboxrule}%
+ \breakbox}
+\def\endboiteepaisseavecuntitre{\endbreakbox}
+
+%% Seconde modification
+\def\boitenumeroteeavecunedoublebarre#1{%
+ %\fboxrule=0.4pt
+ \def\bkvz@before@breakbox{\ifhmode\par\fi\vskip\breakboxskip\relax}%
+ \def\bkvz@set@linewidth{\advance\linewidth -2\fboxrule
+ \advance\linewidth -2\fboxsep
+ \advance\linewidth -2cm}%
+ \def\bkvz@left{\hspace{2cm}%
+ \ifnum\bk@lcnt=1\llap{\textbf{#1}\quad}\fi
+ \vrule \@width\fboxrule\hskip\fboxsep
+ \vrule \@width\fboxrule\hskip\fboxsep}%
+ \def\bkvz@right{}%
+ \def\bkvz@top{}%
+ \def\bkvz@bottom{}%
+ \breakbox
+}
+\def\endboitenumeroteeavecunedoublebarre{\endbreakbox}
+
+%% Troisième modification
+ \newdimen\bk@hauteurcourrante
+ \newdimen\bk@hauteursuivante
+ \newdimen\bk@tempdim
+\def\boiteavecunelignequiondulesurlecote{%
+ \def\bk@espace{ }%
+ \def\pt@to@bp##1{##1=.99627393548##1}% 1bp=1.00374pt
+ \def\bkvz@before@breakbox{\ifhmode\par\fi\vskip\breakboxskip\bk@hauteurcourrante=1200bp}%
+ \def\bkvz@set@linewidth{\advance\linewidth -15bp}%
+ \def\bkvz@left{\global\bk@hauteursuivante=\bk@hauteurcourrante
+ \global\advance\bk@hauteursuivante by -\dp\bk@bxa
+ \global\advance\bk@hauteursuivante by -\ht\bk@bxa
+ \edef\bk@arguments@graphicx{[bb = 0 }%
+ \bk@tempdim=\bk@hauteurcourrante
+ \pt@to@bp\bk@tempdim
+ \edef\bk@arguments@graphicx{%
+ \bk@arguments@graphicx\strip@pt\bk@tempdim\bk@espace}%
+ \bk@tempdim=\bk@hauteursuivante
+ \pt@to@bp\bk@tempdim
+ \edef\bk@arguments@graphicx{%
+ \bk@arguments@graphicx 15
+ \strip@pt\bk@tempdim\bk@espace,
+ clip=true
+ ]}%
+ %\show\bk@arguments@graphicx
+ \smash{\raisebox{\the\ht\bk@bxa}{%
+ \expandafter\includegraphics\bk@arguments@graphicx
+ {ligne_qui_ondule_sur_la_gauche.eps}}}%
+ \global\bk@hauteurcourrante=\bk@hauteursuivante
+ }%
+ \let\bkvz@right\relax
+ \let\bkvz@top\relax
+ \let\bkvz@bottom\relax
+ \breakbox}
+\def\endboiteavecunelignequiondulesurlecote{\endbreakbox}
+
+%% Quatrième modification
+\RequirePackage{pstricks}
+\newgray{gris}{0.9}
+\def\boitecoloriee{%
+ \def\bkvz@before@breakbox{\ifhmode\par\fi\vskip\breakboxskip\relax}%
+ \def\bkvz@set@linewidth{\advance\linewidth -2\fboxrule
+ \advance\linewidth -2\fboxsep} %
+ \def\bk@line{\hbox to \linewidth{%
+ \ifbkcount\smash{\llap{\the\bk@lcnt\ }}\fi
+ \psframebox*[framesep=0pt,fillcolor=gris,linewidth=0pt]{%
+ \vrule\@width\fboxrule \hskip\fboxsep
+ \box\bk@bxa
+ \hskip\fboxsep \vrule\@width\fboxrule
+ }%
+ }}%
+ %\def\bkvz@top{\hrule\@height\fboxrule}
+ \def\bkvz@top{\hrule height .6pt}%%% Pourquoi faut-il ajouter 0.2pt ???
+ \def\bkvz@bottom{\hrule\@height\fboxrule}%
+ \breakbox}
+\def\endboitecoloriee{\endbreakbox}
+
+
+\endinput