\newenvironment{nomdelenvironnement} {definitiondelentree} {definitiondelasortie}Cela peut servir pour personnaliser un environnement existant, par exemple pour avoir des citations en plus petit et en italique :
\newenvironment{macitation} {\begin{itshape}\small\begin{quotation}} {\end{quotation}\normalsize\end{itshape}}Remarquez comment on revient au corps normal en sortie. Si vous voulez pouvoir mettre le nom de l'auteur en première ligne de la citation et entre parenthèses, vous pouvez utiliser un argument :
\newenvironment{macitation}[1] {\begin{itshape}\small\begin{quotation}(#1)\par} {\end{quotation}\normalsize\end{itshape}}Notez la commande \par qui signifie une fin de paragraphe (d'habitude on saute une ligne, mais là c'est impossible !). Ensuite, vous utiliserez votre nouvel environnement comme d'habitude, par exemple
\begin{macitation}{Julius Caesar} Alea jacta est! \end{macitation}Par contre, c'est plus compliqué de mettre le nom de l'auteur en dernière ligne de la même façon, car on ne peut pas se référer à un argument dans la definitiondelasortie.
\newsavebox{\auteur} \newenvironment{macitation}[1] {\begin{itshape}\small\begin{quotation}\savebox{\auteur}{(#1)}} {\par\usebox{\auteur}\end{quotation}\normalsize\end{itshape}}
Mais pour créer un environnement encadré, \framebox ne sert à rien directement. En effet, il faudrait écrire \framebox{ en definitiondelentree et } en sortie, ce qui est malheureusement illégal...
Il aurait fallu pour ce faire un environnement de type framebox, mais il n'y en a pas de prévu en LaTeX. Par contre, il y a un environnement lrbox, à 1 argument, qui fait exactement la même chose que la commande \savebox, donc on est sauvés ! Par exemple, pour encadrer les citations on définira
\newsavebox{\contenu} \newenvironment{citecadre} {\begin{quotation}\begin{lrbox}{\contenu}\begin{minipage}{\linewidth}} {\end{minipage}\end{lrbox}\framebox{\usebox{\contenu}}\end{quotation}}