summaryrefslogtreecommitdiff
path: root/help/LaTeX-FAQ-francaise/part2
diff options
context:
space:
mode:
Diffstat (limited to 'help/LaTeX-FAQ-francaise/part2')
-rw-r--r--help/LaTeX-FAQ-francaise/part22956
1 files changed, 2956 insertions, 0 deletions
diff --git a/help/LaTeX-FAQ-francaise/part2 b/help/LaTeX-FAQ-francaise/part2
new file mode 100644
index 0000000000..6cec50fa9f
--- /dev/null
+++ b/help/LaTeX-FAQ-francaise/part2
@@ -0,0 +1,2956 @@
+Path: tempo.univ-lyon1.fr!univ-lyon1.fr!howland.erols.net!dispose.news.demon.net!demon!grolier!fr.usenet-edu.net!usenet-edu.net!teaser.fr!fdn.fr!edgard.fdn.fr!not-for-mail
+Date: 08 Jun 2001 13:31:17 +0200
+Newsgroups: fr.comp.text.tex,fr.usenet.reponses
+Subject: [FAQ] fr.comp.text.tex - partie 6
+Message-ID: <faq-fctt-p220010608133117@edgard.fdn.fr>
+X-Posted-By: poste.sh version 1.1
+From: bayartb@edgard.fdn.fr (Nono le robot)
+Supersedes: <faq-fctt-p220010501143416@edgard.fdn.fr>
+Expires: 08 Jul 2001 13:31:17 +0200
+Followup-To: poster
+Organization: French Data Network
+Approved: bayartb@edgard.fdn.fr
+Lines: 2947
+Xref: tempo.univ-lyon1.fr fr.comp.text.tex:23525 fr.usenet.reponses:20391
+
+Archive-name: fr/faq-latex-francaise/part2
+
+Author: Marie-Paule Kluth
+Posting-Frequency: mensuel (monthly)
+Version: 2.27
+
+================================================================
+ Cette FAQ, rédigée initialement par MP Kluth est maintenant
+ tenue à jour autant que possible par B. Bayart et
+ plusieurs volontaires (voir question [30]).
+================================================================
+
+================================================================
+[6] GESTION DE LA MISE EN PAGE
+================================================================
+
+# 6.1 # Comment modifier l'interligne d'un document ?
+-----------------------------------------------------
+* Pour modifier l'espace interligne d'un document on peut
+utiliser la commande \linespread (solution non recommandée).
+Par exemple, \linespread{1.6} permet de doubler l'intervalle
+par défaut.
+
+* \renewcommand{\baselinestretch}{1.2} placé dans le
+préambule permet d'obtenir le même résultat pour tout le
+document.
+
+* Il existe également les packages 'doublespace' (pour
+LaTeX2.09) et 'setspace' (pour LaTeX2e) disponibles sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex2.09/contrib/misc/ pour l'un et
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ ou
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/setspace/ pour l'autre.
+setspace.sty définit les environnements singlespace,
+onehalfspace et doublespace. L'utilisation de ces styles est
+recommandée parce que plus robuste (gestion des tableaux, des
+notes de bas de page, ...).
+
+* Pour réduire l'interligne d'un paragraphe (à celui de small
+par exemple) sans modifier la taille de la fonte on peut
+utiliser \small{\normalsize texte à interligne réduit}\par ou
+encore {\advance\baselineskip -1pt le texte \par}.
+
+* Localement, on peut également utiliser la commande
+\baselineskip de la manière suivante :
+
+Exemple :
+{\setlength{\baselineskip}{1.2\baselineskip}
+Texte affecté
+\par} %%% <= terminer le paragraphe
+%%%% fin exemple %%%%
+
+# 6.2 # Comment gérer un document recto-verso ?
+-----------------------------------------------
+* LaTeX2e prévoit directement les options de classe twoside et
+openright.
+
+Exemple :
+\documentclass[twoside,openright]{report}
+%%%% fin exemple %%%%
+
+* En LaTeX 2.09 il faut passer twoside comme option de la
+commande documentstyle. Ensuite, pour forcer les entêtes de
+chapitre à commencer sur une page impaire, il faut inclure la
+commande \cleardoublepage avant chaque début de chapitre.
+
+Exemple :
+\documentstyle[twoside]{report}
+
+\begin{document}
+\cleardoublepage
+\chapter{Introduction.}
+ Texte.
+
+\cleardoublepage
+\chapter{Thèse.}
+ Texte.
+
+\end{document}
+%%%% fin exemple %%%%
+
+* Il existe également la macro suivante qui redéfinit la
+commande \cleardoublepage pour que les pages insérées soient
+vides (i.e. sans entête ni bas de page).
+%%%% debut macro %%%%
+% whitecdp (formerly schulzrinne.sty) --provide for blank pages
+% between chapters
+% This redefinition of the \cleardoublepage command provides
+% for a special pagestyle for the "extra" pages which are generated
+% to ensure that the chapter opener is on a recto page.
+% The pagestyle is "chapterverso"; for many publishers, this should be
+% identical to "empty", so that's the default.
+\def\cleardoublepage{\clearpage
+ \if@twoside
+ \ifodd\c@page\else
+ \null\thispagestyle{chapterverso}\newpage
+ \if@twocolumn\null\newpage\fi
+ \fi
+ \fi
+ }%
+\def\ps@chapterverso{\ps@empty}%
+%%%% fin macro %%%%
+
+# 6.3 # Comment modifier le style des titres ?
+----------------------------------------------
+* Les définitions de \section, \sub(sub)section, etc, se
+trouvent dans les fichiers .cls (report.cls, article.cls,
+book.cls).
+
+ATTENTION : Il est vivement conseillé de ne pas modifier
+ directement ces classes mais de redéfinir
+ un fichier.sty avec les nouvelles commandes ou
+ d'utiliser \makeatletter et \makeatother.
+
+Exemple :
+La syntaxe de définition d'une nouvelle section est :
+\renewcommand\section{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\reset@font\Large\bfseries}}
+
+Explication :
++ La commande \@startsection permet de gérer : la table des
+ matières, la numérotation des titres, les références,
+ les titres des sections dans l'en-tête, etc...
++ {section} indique qu'il s'agit d'une section
++ {1} indique son niveau dans la table des matières
++ {\z@} indique son niveau d'indentation (zéro)
++ {-3.5ex \@plus -1ex \@minus -.2ex} définit l'espace qui sera
+ ajouté au dessus du titre
++ {2.3ex \@plus.2ex} définit l'espace qui sera ajouté en dessous
+ du titre. Si ce nombre est négatif alors il s'agit d'un
+ espacement horizontal, pour avoir des titres "en ligne",
+ comme ça :
+ Titre de ma section. Nous allons parler... bla,
+ bla, bla...
++ \@plus et \@minus permettent de jouer sur l'élasticité de ces
+ espaces
++ {\reset@font\Large\bfseries} sont les commandes de mises en
+ forme du titre.
+%%%% fin exemple %%%%
+
+* Pour augmenter l'espace avant une section il suffit, par
+exemple, d'écrire, dans le préambule du document :
+
+%%%% debut macro %%%%
+\makeatletter
+\renewcommand\section{\@startsection{section}{1}{\z@}%
+ {2cm \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\reset@font\Large\bfseries}}
+\makeatother
+%%%% fin macro %%%%
+
+* Le package 'sfheaders' de M. Loreti, ci dessous met les titres
+dans une fonte sans serif quelle que soit la classe de
+document utilisée. Pour l'utiliser, il suffit de sauvegarder les
+macros suivantes dans un fichier SFheaders.sty et d'appeler
+\usepackage{SFheaders}.
+
+%%%% debut macro %%%%
+% Package: SFheaders.sty
+% Sans-Serif headers; modified from {book|report|article}.cls
+% defaults.
+% Last modified: MLO 1997-05-06
+%
+% Author: Maurizio Loreti, aka MLO or (HAM) I3NOO
+% Work: University of Padova - Department of Physics
+% Via F. Marzolo, 8 - 35131 PADOVA - Italy
+% EMail: loreti@padova.infn.it
+% WWW: http://wwwcdf.pd.infn.it/~loreti/mlo.html
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{sfheaders}[1997/05/06 Sans-Serif headers]
+
+\@ifclassloaded{article}{
+% Here if \documentclass{article}
+ \def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ {\parindent \z@ \raggedright
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \Large \sffamily \bfseries \partname~\thepart
+ \par\nobreak
+ \fi
+ \huge \sffamily \bfseries #2%
+ \markboth{}{}\par}%
+ \nobreak
+ \vskip 3ex
+ \@afterheading}
+ \def\@spart#1{%
+ {\parindent \z@ \raggedright
+ \interlinepenalty \@M
+ \normalfont
+ \huge \sffamily \bfseries #1\par}%
+ \nobreak
+ \vskip 3ex
+ \@afterheading}}
+{\@ifclassloaded{book}{
+% Here if \documentclass{book}
+ \def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ \markboth{}{}%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >-2\relax
+ \huge \sffamily \bfseries \partname~\thepart
+ \par
+ \vskip 20\p@
+ \fi
+ \Huge \sffamily \bfseries #2\par}%
+ \@endpart}
+
+ \def\@spart#1{%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \Huge \sffamily \bfseries #1\par}%
+ \@endpart}
+
+ \def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \huge \sffamily \bfseries \@chapapp\space \thechapter
+ \par\nobreak
+ \vskip 20\p@
+ \fi
+ \fi
+ \interlinepenalty\@M
+ \Huge \sffamily\ bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+
+ \def\@makeschapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright
+ \normalfont
+ \interlinepenalty\@M
+ \Huge \sffamily \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+}{
+% Here if none of the above (\documentclass{report} ?)
+ \def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ \markboth{}{}%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >-2\relax
+ \huge \sffamily \bfseries \partname~\thepart
+ \par
+ \vskip 20\p@
+ \fi
+ \Huge \sffamily \bfseries #2\par}%
+ \@endpart}
+
+ \def\@spart#1{%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \Huge \sffamily \bfseries #1\par}%
+ \@endpart}
+
+ \def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \huge \sffamily \bfseries \@chapapp\space \thechapter
+ \par\nobreak
+ \vskip 20\p@
+ \fi
+ \interlinepenalty\@M
+ \Huge \sffamily \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+
+ \def\@makeschapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright
+ \normalfont
+ \interlinepenalty\@M
+ \Huge \sffamily \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+}}
+
+\renewcommand{\section}{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\normalfont\Large\sffamily\bfseries}}
+
+\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\large\sffamily\bfseries}}
+
+\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}%
+ {\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\sffamily\bfseries}}
+
+\renewcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {normalfont\normalsize\sffamily\bfseries}}
+
+\renewcommand{\subparagraph}{\@startsection{subparagraph}{5}%
+ {\parindent}%
+ {3.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\normalfont\normalsize\sffamily\bfseries}}
+\endinput
+
+%%
+%% End of `SFheaders.sty'.
+%%%% fin macro %%%%
+
+* Le package 'fncychap' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/fncychap/ propose un
+ensemble d'entêtes de chapitre prédéfinies.
+
+# 6.4 # Comment obtenir un document multicolonnes ?
+---------------------------------------------------
+* L'option standard twocolumn permet de présenter un texte sur
+deux colonnes verticales.
+
+Exemple :
+\documentclass[twocolumn]{article}
+\usepackage{french}
+
+\begin{document}
+
+Voici un texte sur deux colonnes que \LaTeX n'équilibre pas
+par lui-même (il remplit les colonnes les unes après les
+autres). L'espace entre les colonnes peut être modifié comme
+indiqué plus loin. Une ligne de séparation des colonnes peut
+également être insérée.
+
+\end{document}
+%%%% fin exemple %%%%
+
+* Pour agir localement, on peut utiliser les commandes :
+\twocolumn[texte sur une colonne]{texte sur deux colonnes}
+puis \onecolumn{Texte sur une colonne} ou plus généralement
+\twocolumn et \onecolumn.
+
+Pour une meilleure lisibilité du source, on peut également
+utiliser les environnements correspondants.
+
+Exemple :
+\documentclass{article}
+\usepackage{french}
+
+\begin{document}
+
+Dans la classe article, le texte est, par défaut, mis en page
+sur une seule colonne. Il est toutefois possible de passer
+temporairement sur deux colonnes.
+
+\twocolumn[Un titre sur une colonne, un peu long pour le
+prouver.]{Et voici enfin un texte sur deux colonnes~; comme
+promis~! Encore une fois, \LaTeX n'équilibre pas le
+remplissage des deux colonnes si bien qu'il est obligé pour
+chaque changement de colonnage de changer de page.}
+
+\onecolumn
+Ceci permet de repasser sur une colonne pour la suite du
+document.
+
+\begin{twocolumn}
+ Encore quelques mots sur deux colonnes. Même si le texte est
+ trop court pour voir apparaître la deuxième colonne.
+\end{twocolumn}
+\end{document}
+%%%% fin exemple %%%%
+
+* Le package 'multicol', disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/, définit l'environnement
+multicols qui permet de redéfinir localement le nombre de
+colonnes désirées (10 maximum). Lorsqu'une page n'est pas
+complète, le texte apparaît réparti sur toutes les colonnes.
+Ainsi chaque changement de colonnage n'entraîne plus un
+changement de page.
+
+Exemple :
+\documentclass{article}
+\usepackage{multicol}
+\usepackage{french}
+\setlength{\columnseprule}{0.5pt}
+\begin{document}
+
+\begin{multicols}{3}[Titre sur une seule colonne.]
+ 3~colonnes équilibrées, 3~colonnes équilibrées, 3~colonnes
+ équilibrées, 3~colonnes équilibrées
+\end{multicols}
+
+\begin{multicols}{2}[\section{Titre numéroté.}]
+ blabla sur deux colonnes, c'est plus sérieux. C'est le
+ style qui est généralement utilisé pour écrire des
+ articles.
+\end{multicols}
+\end{document}
+%%%% fin exemple %%%%
+
+Pour ajouter un titre numéroté qui apparaisse sur toute la
+largeur de la page, il faut utiliser l'option [\section{Titre.}]
+juste après \begin{multicols}{nb-col}.
+
+Remarques :
++ Pour qu'une ligne de séparation apparaisse entre les
+colonnes, il faut utiliser : \setlength{\columnseprule}{1pt}.
+
++ Pour redéfinir la largeur de l'espace inter-colonnes, il faut
+utiliser \setlength{\columnsep}{30pt}.
+
+# 6.5 # Comment composer une brochure ?
+---------------------------------------
+* Pour redéfinir un format de page, (par exemple un A4 plié en
+trois), il faut utiliser la commande \setlength. Il suffit de
+savoir quelles sont les longueurs à préciser, le meilleur moyen
+pour ce faire est de les visualiser avec la commande \layout
+(définie par le package 'layout' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/).
+
+%%%% debut macro %%%%
+% (Th. Bouche)
+\ProvidesPackage{a6size}
+% rien a voir avec la taille : ajustement du \baselineskip
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize\@xiipt{13.5}%
+ \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\renewcommand\small{%
+ \@setfontsize\small\@xipt{12.4}%
+ \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 9\p@ \@plus3\p@ \@minus5\p@
+ \parsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip}
+\normalsize
+
+\setlength\paperheight {148mm}%
+\setlength\paperwidth {105mm}%
+%\voffset-1cm
+%\hoffset-2cm
+\setlength{\topmargin}{-1.3cm}%
+\setlength{\oddsidemargin}{-.5cm}%
+\setlength{\evensidemargin}{-1cm}%
+\setlength{\marginparsep}{0\p@}%
+\setlength{\headsep}{0\p@}%
+% calcule la hauteur du texte en fonction du \baselineskip, pour
+% que les lignes soient placées au même niveau sur toutes les pages
+\setlength{\textheight}{\topskip}
+\addtolength{\textheight}{22\baselineskip}%
+\setlength{\textwidth}{7cm}%
+\setlength{\footskip}{23\p@}% (originellement : 48)
+%\setlength{\baselineskip}{13\p@}%
+%\setlength{\marginparwidth}{0\p@} %
+%\addtolength{\baselineskip}{.2\baselineskip}%
+\setlength{\parindent}{0\p@}
+%\addtolength{\headsep}{\headsep}
+%\setlength{\push@skip}{.2\textwidth}
+\newenvironment{page}{\vspace*{\stretch{1}}}
+{\vspace*{\stretch{2.5}}\newpage}
+\pagestyle{plain}
+%%%% fin macro %%%%
+
+Il faut ensuite opérer ce que les imprimeurs appellent une
+imposition : imprimer la page tant à tel endroit de la x-ième
+feuille de telle sorte qu'il n'y ait plus qu'à plier la liasse
+pour obtenir un livre prêt à être relié. Cette étape est facile
+à réaliser soit à l'aide de dvidvi (mais qui n'autorise pas les
+rotations, ce qui peut en limiter l'intérêt pour des formats
+spéciaux) soit avec pstops :
+pstops "2:0L@.7(21cm,0)+1L@.7(21cm,14.85cm)" un.ps deux.ps
+disponible sur ftp://ftp.fdn.org/pub/CTAN/support/psutils/.
+
+* L'option a5paper de LaTeX2e permet également de faire cela.
+Il faut ensuite utiliser dvidvi et dvips en -t landscape. dvips
+est disponible entre autres par ftp sur
+ftp://ftp.gutenberg.eu.org/pub/gut/sources/.
+
+* Le package 'a5booklet' est disponible sur
+ftp://ftp.fdn.org/pub/CTAN/dviware/a5booklet/.
+
+* Consulter également le package '2up' pour LaTeX2e.
+
+* Le package 'poligraf' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/TeX-PS/cmyk-hax/ permet d'agir sur la mise en page
+d'un document avant impression.
+
+* psnup et psbook peuvent également permettre de faire de la
+composition mais il vaut alors mieux travailler avec des polices
+postscript. Ces utilitaires sont accessibles via :
+http://www.dcs.ed.ac.uk/home/ajcd/psutils/.
+
+Exemple (J.A. Ferrez) :
+=================SNIP
+#!/bin/sh
+#
+# Turn a (clean) PS file into a booklet
+#
+# input on stdin or file in arg
+#
+# psbook -- reorder the pages
+# see -s option for _very_ large files
+# psnup -- scale and place two pages onto one
+# pstops -- reverse the odd pages for duplex printing
+#
+# outup on stdout
+#
+psbook $1 | psnup -2 | pstops "2:0,1U(21cm,29.7cm)"
+=================SNIP
+%%%% fin exemple %%%%
+
+* Le résultat est possible également en ne travaillant que sur
+le postscript : dvips -h twoup -t landscape fichier.dvi.
+
+* Sur PC on peut utiliser dvidrv.
+
+* Pour PC twoup fait cela, mais ce n'est pas du domaine public.
+
+# 6.6 # Comment définir un format de document ?
+-----------------------------------------------
+La structure d'une page LaTeX permet de nombreux ajustements :
++ \setlength{\textwidth}{??cm} permet de fixer la largeur du
+texte
++ \setlength{\textheight}{??cm} permet de fixer la hauteur du
+texte
++ \setlength{\oddsidemargin}{(-)??cm} permet de définir la
+marge gauche des pages impaires
++ \setlength{\evensidemargin}{(-)??cm} permet de définir la
+marge gauche des pages paires
++ \setlength{\topskip}{??cm} laisse un espace en haut de page
++ \setlength{\footskip}{??cm} laisse un espace en bas de page
++ \setlength{\headheight}{??cm} fixe la hauteur de l'entête
++ \addtolength{\topmargin}{(-)??cm}
++ \addtolength{\textheight}{(-)??cm}
+
+* Il existe également les packages 'a4' et 'a4wide' disponibles
+respectivement sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/ntgclass/ et dans
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ qui permettent de
+redéfinir les marges et largeur de texte.
+
+* Le package 'geometry' est plus flexible que les précédents
+pour définir son propre format de page. Il définit de
+nouvelles variables de structure de la page. Il propose en
+outre un ensemble de formats par défaut (a0paper, b5paper,
+legalpaper, ...).
+
+# 6.7 # Comment redéfinir les marges d'un document ?
+----------------------------------------------------
+* Le package 'vmargin', de V. Kuhlmann, est disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/. Il permet facilement de
+redéfinir globalement (pour tout le document) les marges d'un
+document par la commande :
+\setmarginsrb{1}{2}{3}{4}{5}{6}{7}{8}
+1 est la marge gauche
+2 est la marge en haut
+3 est la marge droite
+4 est la marge en bas
+5 fixe la hauteur de l'entête
+6 fixe la distance entre l'entête et le texte
+7 fixe la hauteur du pied de page
+8 fixe la distance entre le texte et le pied de page
+
+Vous pouvez également utiliser des valeurs par défaut en rapport
+avec le papier utilisé, par exemple:
+\setpapersize{A4}
+
+* L'environnement changemargin décrit ci-dessous permet de
+modifier localement les marges d'un document. Il prend deux
+arguments, la marge gauche et la marge droite (ces arguments
+peuvent prendre des valeurs négatives).
+
+%%%% debut macro %%%%
+\newenvironment{changemargin}[2]{\begin{list}{}{%
+\setlength{\topsep}{0pt}%
+\setlength{\leftmargin}{0pt}%
+\setlength{\rightmargin}{0pt}%
+\setlength{\listparindent}{\parindent}%
+\setlength{\itemindent}{\parindent}%
+\setlength{\parsep}{0pt plus 1pt}%
+\addtolength{\leftmargin}{#1}%
+\addtolength{\rightmargin}{#2}%
+}\item }{\end{list}}
+%%%% fin macro %%%%
+
+Exemple :
+\begin{changemargin}{2cm}{-1cm}
+ Ceci permet d'augmenter la marge gauche de 2cm et de diminuer
+ celle de droite de 1cm.
+\end{changemargin}
+A comparer avec un texte qui occupe toute la largeur de la page,
+comme celui-ci.
+%%%% fin exemple %%%%
+
+* Le package 'geometry' permet de redéfinir les marges d'un
+document ou de définir le layout de la page.
+
+Exemple 1 :
+\geometry{margin=5pt}
+équivalent à
+\geometry{hmargin=5pt, vmargin=5pt}
+équivalent à
+\geometry{margin={5pt,5pt}}
+%%%% fin exemple %%%%
+
+Exemple 2 :
+\documentclass{report}
+\usepackage{french}
+\usepackage{geometry}
+\geometry{scale=1.0, nohead}
+\begin{document}
+Ainsi, le texte apparaît beaucoup plus haut dans une page.
+\end{document}
+%%%% fin exemple %%%%
+
+Exemple 3 :
+\documentclass{report}
+\usepackage{french}
+\begin{document}
+Voici une page normale pour comparer.
+\end{document}
+%%%% fin exemple %%%%
+
+* Le package 'truncate' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ permet de fixer la
+largeur d'un texte.
+
+* Il existe également le package 'typearea' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/script/.
+
+* L'environnement narrow, de K. Reckdahl, ci-dessous permet
+d'encapsuler des paragraphes de largeurs différentes.
+%%%% debut macro %%%%
+%-----------------------------------------------------------------
+% \begin{narrow}{1.0in}{0.5in} produces text which is narrowed
+% by 1.0 on left margin and 0.5 inches on right margin
+% \begin{narrow}{-1.0in}{-0.5in} produces text which is widened
+% by 1.0 on left margin and 0.5 inches on right margin
+% Narrow environments can be nested and are ended by \end{narrow}
+%-----------------------------------------------------------------
+\newenvironment{narrow}[2]{%
+ \begin{list}{}{%
+ \setlength{\topsep}{0pt}%
+ \setlength{\leftmargin}{#1}%
+ \setlength{\rightmargin}{#2}%
+ \setlength{\listparindent}{\parindent}%
+ \setlength{\itemindent}{\parindent}%
+ \setlength{\parsep}{\parskip}%
+ }%
+\item[]}{\end{list}}
+%%%% fin macro %%%%
+
+# 6.8 # Comment changer l'orientation d'un document ?
+-----------------------------------------------------
+* Globalement, pour passer en orientation paysage, il suffit de
+mettre l'option landscape dans \documentclass (LaTeX2e) ou dans
+\documentstyle (LaTeX2.09).
+
+Exemple :
+\documentclass[landscape]{report}
+\usepackage{french}
+\begin{document}
+Voici un document écrit dans un sens non conventionnel.
+\end{document}
+%%%% fin exemple %%%%
+
+* Le package 'lscape' de D. Carlisle (LaTeX2e), disponible
+sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/, permet de changer
+localement d'orientation portrait vers paysage et vice versa. Il
+définit l'environnement landscape.
+
+Exemple :
+\documentclass[11pt]{report}
+\usepackage{lscape}
+
+\begin{document}
+
+\begin{landscape}
+ Un petit tour à la campagne,~\ldots
+\end{landscape}
+
+et nous voici de retour dans la galerie, après un changement de
+page bien évidemment.
+
+\end{document}
+%%%% fin exemple %%%%
+
+* Il existe également le package 'rotating' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/rotating/.
+
+Exemple (tiré de la doc) :
+\newcount\wang
+\newsavebox{\wangtext}
+\newdimen\wangspace
+\def\wheel#1{\savebox{\wangtext}{#1}%
+\wangspace\wd\wangtext
+\advance\wangspace by 1cm%
+\centerline{%
+\rule{0pt}{\wangspace}%
+\rule[-\wangspace]{0pt}{\wangspace}%
+\wang=-180\loop\ifnum\wang<180
+\rlap{\begin{rotate}{\the\wang}%
+\rule{1cm}{0pt}#1\end{rotate}}%
+\advance\wang by 10 \repeat}}
+\wheel{Save the whale}
+%%%% fin exemple %%%%
+
+* Il existe aussi le programme docstrip disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/unpacked/docstrip.tex.
+
+* Pour le cas où vous auriez un fichier dvi en landscape, vous
+pouvez obtenir un fichier postscript propre en utilisant la
+commande:
+
+Exemple :
+dvips -t a4 -t landscape -o tmp.ps toto.dvi
+%%%% fin exemple %%%%
+
+# 6.9 # Comment justifier verticalement un paragraphe ?
+-------------------------------------------------------
+L'environnement vcenterpage ci-dessous permet de centrer
+verticalement un texte sur une page seule.
+
+%%%% debut macro %%%%
+\newenvironment{vcenterpage}
+{\newpage\vspace*{\fill}}
+{\vspace*{\fill}\par\pagebreak}
+%%%% fin macro %%%%
+
+Exemple :
+\begin{vcenterpage}
+ Texte qui apparait au milieu de la page.
+\end{vcenterpage}
+%%%% fin exemple %%%%
+
+# 6.10 # Comment modifier la commande \caption ?
+------------------------------------------------
+* Le package 'hangcaption', disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/, dans lequel la commande
+\isucaption remplace la commande \caption, permet de modifier la
+mise en page de cette dernière. En particulier, il permet de
+définir \captionwidth.
+
+* Il existe également les packages 'caption' et 'caption2'
+disponibles sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/caption/ qui permettent de
+modifier la commande \caption classique (largeur, style,
+fonte, ...).
+
+Exemples :
+\usepackage[small,hang]{caption2}
+\renewcommand{\captionfont}{\it \small}
+\renewcommand{\captionlabelfont}{\it \bf \small}
+\renewcommand{\captionlabeldelim}{ :}
+%%%% fin exemple %%%%
+
+Remarque : il est recommandé d'utiliser 'caption2' plutôt que
+ 'caption'.
+
+* Le package 'topcapt' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/misc/ définit la commande \topcaption qui
+permet de placer le texte de la commande caption au dessus du
+flottant auquel elle est rattachée.
+
+* Le package 'french' de B. Gaulle propose la commande
+\unnumberedcaptions qui permet de supprimer la numérotation des
+flottants.
+
+* Pour avoir une présentation du type :
+Figure 1. Voici le texte de la légende d'une figure. Mais
+ lorsque la légende est longue, elle se présente
+ comme ceci.
+
+au lieu de :
+Figure 1. Voici le texte de la légende d'une figure. Mais
+lorsque la légende est longue, elle se présente comme
+ceci.
+
+on peut utiliser \caption[texte]{\protect\parbox[t]{wd}{texte}}
+où wd est la largeur de la boîte (cette largeur peut être adaptée
+à la taille de la figure automatiquement si la figure est
+elle-même dans une boite dont on récupère la largeur). \protect
+est absolument nécessaire pour éviter une erreur. Le texte au
+début [texte] est celui qui apparaîtra dans la table des figures
+(il peut éventuellement être plus court).
+
+Plus simplement, le package 'caption2' permet de faire la même
+chose avec l'option hang.
+
+* La variable \figurename permet de redéfinir le nom du titre de
+la figure. De même pour \tablename et les tableaux.
+
+Exemple :
+\def\figurename{Croquis}
+%%%% fin exemple %%%%
+
+# 6.11 # Comment modifier un changement de page ?
+-------------------------------------------------
+* \newpage impose un changement brutal de page.
+
+* \pagebreak[n] où n représente l'autorité avec laquelle on veut
+changer de page (n compris entre 1 et 5). Cette commande garde
+la justification, 1 impose une contrainte faible, 5 impose une
+contrainte sévère.
+
+* \nopagebreak[n] idem pour empêcher une coupure de page.
+
+* \clearpage agit comme un \newpage mais libère le buffer de
+flottants.
+
+* \cleardoublepage fait la même chose et force un redémmarrage
+sur une page impaire.
+
+* \enlargethispage{lgr} impose à LaTeX2e de comprimer (lgr
+négatif) ou d'expanser (lgr positif) le contenu d'une page.
+Ceci pour éviter que la page suivante contienne trop peu de
+texte.
+
+Exemples :
+\enlargethispage{1cm} % ajoute un cm
+\enlargethispage{-2\baselineskip} % supprime deux lignes dans la
+ % page
+%%%% fin exemple %%%%
+
+Remarque : \enlargethispage*{lgr} donne une autorité plus grande
+ à la commande \enlargethispage en l'obligeant à agir
+ sur les espacements élastiques verticaux contenus
+ dans la page courante.
+
+* J.P. Drucbert donne ci-dessous un petit papier décrivant un
+style block.sty bricolé à partir de macro de diverses origines
+(dont D. Arseneau, assez connu). Si vous passez LaTeX sur ce
+papier, block.sty sera créé. Les macros les plus intéressantes
+sont \need{dim} et \lneed{N}, qui provoquent un saut de page
+s'il reste moins que la dimension dim (ou N fois \baselinskip)
+verticalement sur la page. Ce n'est pas parfait, mais cela m'a
+rendu des services.
+
+%%%% debut macro %%%%
+\begin{filecontents}{block.sty}
+\ifx\endBlock\undefined
+\def\block{\begingroup%
+\def\endblock{\egroup\endgroup}%
+\vbox\bgroup}%
+\long\def\Block{\begingroup%
+\def\endBlock{\unskip\egroup\endgroup}%
+\pagebreak[2]\vspace*{\parskip}\vbox\bgroup%
+\par\noindent\ignorespaces}
+\long\def\IBlock{\begingroup%
+\def\endIBlock{\unskip\egroup\endgroup}%
+\pagebreak[2]\vspace*{\parskip}\vbox\bgroup\par\ignorespaces}
+\def\need#1{\ifhmode\unskip\par\fi \penalty-100 \begingroup
+% preserve \dimen@, \dimen@i
+ \ifdim\prevdepth>\maxdepth \dimen@i\maxdepth
+ \else \dimen@i\prevdepth\fi
+ \kern-\dimen@i
+ \dimen@\pagegoal \advance\dimen@-\pagetotal % space left
+ \ifdim #1>\dimen@
+ \vfill\eject\typeout{WARNING- EJECT BY NEED}
+ \fi
+ \kern\dimen@i
+ \endgroup}
+\def\lneed#1{\need{#1\baselineskip}}
+% \begin{block} ... \end{block} delimite un bloc qui restera,
+% si possible, sur une seule page.
+\long\def\TBlock{\begingroup%
+\def\endTBlock{\unskip\egroup\endgroup}%
+\pagebreak[2]\vspace*{\parskip}\vtop\bgroup%
+\par\noindent\ignorespaces}
+\else
+\typeout{block.sty already loaded}
+\fi
+\endinput
+
+\def\need#1{\par \penalty-100 \begingroup
+% preserve \dimen@, \dimen@i
+ \ifdim\prevdepth>\maxdepth \dimen@i\maxdepth
+ \else \dimen@i\prevdepth\fi
+ \kern-\dimen@i
+ \dimen@\pagegoal \advance\dimen@-\pagetotal % space left
+ \ifdim #1>\dimen@ \vfil \eject \fi
+ \kern\dimen@i
+ \endgroup}
+\end{filecontents}
+
+\documentclass[12pt,a4paper]{article}
+\def\bs{\texttt{\char'134}}
+\parskip=12pt plus1pt minus0.5pt
+\usepackage[english,francais]{babel}
+\usepackage[T1]{fontenc}
+\usepackage[isolatin]{inputenc}
+\begin{document}
+\clearpage
+\section{Paquetage \texttt{block}}\label{BLOCK+}
+Ce paquetage offre divers outils permettant d'empêcher qu'une
+rupture de page se produise à un certain endroit.
+
+\subsection{Blocs Protégés}
+
+Vous pouvez protéger une zone contre la rupture de page. Il
+suffit pour cela de la placer dans un environnement
+\texttt{Block} ou dans un environnement \texttt{IBlock}. Dans le
+premier cas (\texttt{Block}), le premier paragraphe se trouvant
+dans la zone ne sera pas indenté, mais le sera dans le second
+cas (\texttt{IBlock}). Ceci est utile en particulier pour
+éviter de séparer un texte et un exemple qui l'accompagne. Les blocs ainsi
+protégés doivent, bien entendu, rester assez petits. La syntaxe
+est (vous pouvez remplacer \texttt{Block} par \texttt{IBlock}):
+\begin{quote}\tt
+%\begin{tabular}{l}
+\bs begin\{Block\}\\
+\qquad\ldots\\
+zone protégée\\
+\qquad\ldots\\
+\bs end\{Block\}
+%\end{tabular}
+\end{quote}
+
+Cette méthode, très simple, a l'inconvénient de ne pas pouvoir
+s'appliquer lorsque la zone à protéger doit contenir une
+commande de sectionnement (c'est-à-dire du même type que
+\verb|\section|), une note en bas de page, une note marginale ou
+un corps mobile (figure ou table). Dans ce cas, il faudra
+utiliser une des commandes du paragraphe suivant.
+
+\subsection{Réservations Verticales}
+Vous pouvez aussi demander de changer de page (ou de colonne, si votre
+document est sur deux colonnes) s'il ne reste pas verticalement assez
+de place sur la page. Deux commandes de réservation verticale sont
+disponibles: \verb|\need{|{\em dimension\/}\verb|}|, dont le paramètre est une
+longueur, et \verb|\lneed{|{\em nombre\/}\verb|}|, dont le paramètre est
+le nombre de lignes équivalant à l'espace vertical demandé (avec cette forme
+le paramètre est plus facile à estimer).
+
+\end{document}
+%%%% fin macro %%%%
+
+* Pour éviter les coupures de page (ou les coupures de colonnes
+avec multicol.sty) à l'intérieur des \item dans une description
+(et d'ailleurs dans toute liste), solution simple sortie du
+TeXbook:
+\begin{description}\interlinepenalty 10000
+
+# 6.12 # Comment obtenir des colonnes parallèles ?
+--------------------------------------------------
+Le package 'parallel' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/parallel/ permet d'obtenir
+deux colonnes dont l'une peut contenir la traduction de l'autre.
+
+# 6.13 # Comment définir l'espace de début de paragraphe ?
+----------------------------------------------------------
+* Il faut valoriser la variable \parindent.
+
+Exemple :
+\setlength{\parindent}{1cm}
+%%%% fin exemple %%%%
+
+* Pour agir localement, on peut utiliser \hspace*{lgr}.
+
+* Le package 'indentfirst' permet de forcer LaTeX à indenter le
+premier paragraphe après une nouvelle section (indentation
+normalement non utilisée en typographie française).
+
+# 6.14 # Comment supprimer la date sur une page de titre ?
+----------------------------------------------------------
+Il faut ajouter la commande \date{} dans le préambule du
+document.
+
+# 6.15 # Comment mettre en valeur la première lettre d'un chapitre ?
+--------------------------------------------------------------------
+* Il faut utiliser le package 'dropcaps' de F. Lauwers.
+Il est disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/dropcaps/.
+Ce package est utilisable avec LaTeX2.09 et LaTeX2e.
+
+* Les packages 'initial' et 'initials' pour LaTeX2e sont
+disponibles sur CTAN. Le second que l'on peut trouver dans
+ftp://ftp.fdn.org/pub/CTAN/fonts/gothic/yinit/ fait appel à des fontes yinit particulières.
+
+* Il existe également un package 'drop' pour LaTeX2.09, mais
+compatible LaTeX2e, disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/.
+
+Exemple :
+\documentclass[12pt,a4paper]{article}
+\usepackage{drop}
+\font\largefont=yinitas % fontes yinit
+begin{document}
+\drop{D}OES THERE EXIST a field with 4 elements?
+\end{document}
+%%%% fin exemple %%%%
+
+* 'bigdrop' accessible sur CTAN dans/CTAN/digests/ttn est une
+macro TeX compatible LaTeX.
+
+* Le package 'bigstart' pour LaTeX2.09 et LaTeX2e permet
+également de faire cela.
+
+* Il existe également le package 'picinpar' pour LaTeX2.09
+disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/picinpar/ et
+ftp://ftp.fdn.org/pub/CTAN/systems/msdos/4alltex/disk04/.
+
+* On peut également définir sa propre macro :
+%%%% debut macro %%%%
+\font\capfont=cmbx12 at 24.87 pt % or yinit, or...?
+\newbox\capbox \newcount\capl \def\a{A}
+\def\docappar{\medbreak\noindent\setbox\capbox\hbox{%
+\capfont\a\hskip0.15em}\hangindent=\wd\capbox%
+\capl=\ht\capbox\divide\capl by\baselineskip\advance\capl by1%
+\hangafter=-\capl%
+\hbox{\vbox to8pt{\hbox to0pt{\hss\box\capbox}\vss}}}
+\def\cappar{\afterassignment\docappar\noexpand\let\a }
+%%%% fin macro %%%%
+
+Exemple :
+\cappar Il était une fois un petit chaperon rouge qui avait une
+grand-mère qui habitait de l'autre côté de la foret. Un jour,
+alors que sa grand-mère était malade, le petit chaperon rouge
+décida de lui rendre visite~\ldots
+%%%% fin exemple %%%%
+
+* Un petit dernier, le package 'dropping' qui étend le
+package 'dropcaps' est disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/dropping/.
+
+Exemple :
+\dropping{3}{\itshape{} Voici} un exemple de ce que permet de
+faire le magnifique package dropping de M. Dahlgren. La commande
+\texttt{\\dropping} peut prendre en argument un mot comme c'est le cas ici
+ou une simple lettre.
+%%%% fin exemple %%%%
+
+* Le package 'french' de B. Gaulle propose également la commande
+\lettrine.
+
+Exemple :
+\lettrine{UN jour,} mon prince~\ldots
+%%%% fin exemple %%%%
+
+* Le paquetage 'lettrine' de Daniel Flipo propose lui aussi la commande
+\lettrine, mais avec une diversité d'options inconnues à french (nombre de
+lignes, forme, etc.) Tiré de la doc:
+
+Exemple :
+\lettrine[lines=4, slope=-0.5em, lhang=0.5, nindent=0pt]{V}{oici}
+%%%% fin exemple %%%%
+
+* Le paquetage 'lettrine' de Daniel Flipo propose lui aussi la commande
+\lettrine, mais avec une diversité d'options inconnues à french (nombre de
+lignes, forme, etc.) Tiré de la doc:
+
+Exemple :
+\lettrine[lines=4, slope=-0.5em, lhang=0.5, nindent=0pt]{V}{oici}
+%%%% fin exemple %%%%
+
+# 6.16 # Comment préserver les tabulations en mode verbatim ?
+-------------------------------------------------------------
+* Le package 'moreverb' est disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/. Il propose notamment un
+environnement verbatimtab qui permet de conserver des
+tabulations.
+
+Exemple :
+\begin{verbatimtab}
+int pattern(char *p, int n, int m)
+{
+ int orig = current_position();
+ int new_pos;
+
+ goto_line(n);
+
+ if(p && forward_search(p) && (current_line()<m)){
+ new_pos = current_position();
+ goto_char(orig);
+ return(new_pos);
+ }
+ return(-1);
+}
+\end{verbatimtab}
+%%%% fin exemple %%%%
+
+* Il existe également le package 'verbasef' (verbatim automatic
+segmentation of external files) disponible sur CTAN. Il utilise
+l'environnement figure.
+
+* On peut également inclure les lignes suivantes dans le
+préambule du document :
+%%%% debut macro %%%%
+\makeatletter
+{\catcode`\^^I=\active
+\gdef\verbatim{\catcode`\^^I=\active\def^^I{\hspace*{4em}}%
+\@verbatim \frenchspacing\@vobeyspaces \@xverbatim}}
+\makeatother
+%%%% fin macro %%%%
+
+# 6.17 # Comment modifier les entêtes de chapitre ?
+---------------------------------------------------
+Il faut modifier la macro makechapterhead.
+
+Ajouter, par exemple, dans le preambule :
+%%%% debut macro %%%%
+\makeatletter
+\def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright \normalfont
+ \interlinepenalty\@M
+ \ifnum \c@secnumdepth >\m@ne
+ \Huge\bfseries \thechapter\quad
+ \fi
+ \Huge \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+
+\def\@makeschapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright
+ \normalfont
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+\makeatother
+%%%% fin macro %%%%
+
+# 6.18 # Comment définir des tabulations ?
+------------------------------------------
+Il faut utiliser l'environnement tabbing qui permet de placer
+des marques d'alignement dans un texte.
+
+Exemple :
+\begin{tabbing}
+ Voici \= des \= marques \= de tabulation \\
+ \> la je m'aligne sur la première \\
+ \> \> \> la sur la troisième \\
+ \hspace{3cm} \= \hspace{2cm} \= \kill
+ un \> autre \> exemple.
+\end{tabbing}
+%%%% fin exemple %%%%
+
+# 6.19 # Comment obtenir des lettres accentuées dans tabbing ?
+--------------------------------------------------------------
+* Pour produire un \'{e} dans un environnement tabbing où la
+commande \' a été redéfinie, il faut utiliser \a'{e} ou \a'e
+
+* Le style suivant de J.P. Drucbert permet de remplacer
+l'environnement standard tabbing par l'environnement Tabbing
+dans lequel les commandes \` \' \> \< \= \+ \- sont remplacées
+par \TAB` \TAB' \TAB> \TAB< \TAB= \TAB+ \TAB- ce qui permet de
+préserver les commandes d'accent (\' \` ou \=).
+
+%%%% debut macro %%%%
+\ProvidesPackage{Tabbing}[1996/01/16]
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\gdef\Tabbing{\lineskip \z@skip
+% \let\>\@rtab
+% \let\<\@ltab
+% \let\=\@settab
+% \let\+\@tabplus
+% \let\-\@tabminus
+% \let\`\@tabrj
+% \let\'\@tablab
+\def\TAB##1{\ifx ##1>\@rtab\else
+ \ifx ##1<\@ltab\else
+ \ifx ##1=\@settab\else
+ \ifx ##1+\@tabplus\else
+ \ifx ##1-\@tabminus\else
+ \ifx ##1`\@tabrj\else
+ \ifx ##1'\@tablab\else
+ \PackageError{Tabbing}%
+ {Bad argument ##1 for Tabbing
+ specification} \fi\fi\fi\fi\fi\fi\fi}
+ \let\\=\@tabcr
+ \global\@hightab\@firsttab
+ \global\@nxttabmar\@firsttab
+ \dimen\@firsttab\@totalleftmargin
+ \global\@tabpush\z@ \global\@rjfieldfalse
+ \trivlist \item\relax
+ \if@minipage\else\vskip\parskip\fi
+ \setbox\@tabfbox\hbox{\rlap{\indent\hskip\@totalleftmargin
+ \the\everypar}}\def\@itemfudge{\box\@tabfbox}%
+ \@startline\ignorespaces}
+\gdef\endTabbing{%
+ \@stopline\ifnum\@tabpush >\z@ \@badpoptabs \fi\endtrivlist}
+\endinput
+%%%% fin macro %%%%
+
+# 6.20 # Comment encadrer du texte ?
+------------------------------------
+* Une solution consiste à définir un tableau d'une seule
+cellule.
+
+* On peut aussi utiliser :
+\fbox{
+\begin{minipage}{0.7\textwidth}
+ Texte...
+\end{minipage}
+}
+
+* On peut également se définir son propre environnement.
+
+Exemple :
+\newsavebox{\fmbox}
+\newenvironment{fmpage}[1]
+ {\begin{lrbox}{\fmbox}\begin{minipage}{#1}}
+ {\end{minipage}\end{lrbox}\fbox{\usebox{\fmbox}}}
+
+Utilisation :
+\begin{fmpage}{3cm}
+ Texte à encadrer dans une boîte ne dépassant pas 3
+ centimètres de large.
+\end{fmpage}
+%%%% fin exemple %%%%
+
+* Il existe également le package 'fancybox', disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/others/seminar/inputs/, qui définit
+des fonctions telles que \shadowbox, \doublebox, \ovalbox,...
+
+Exemple :
+\shadowbox{Texte ombré.}
+\doublebox{Texte doublement encadré.}
+\ovalbox{Texte dans un cadre aux coins arrondis.}
+%%%% fin exemple %%%%
+
+* Le package 'boxedminipage' est un vieux style LaTeX2.09
+disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/.
+
+* Voir également le package 'hh' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/hh/.
+
+* Le package 'niceframe' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/niceframe/ permet de
+définir des cadres pleine page.
+
+* Pour encadrer un texte pouvant s'étendre sur plusieurs pages,
+il existe le package 'eclbkbox' :
+%%%% debut macro %%%%
+% eclbkbox.sty by Hideki Isozaki, 1992
+% Date: May 28, 1993
+
+\newbox\bk@bxb
+\newbox\bk@bxa
+\newif\if@bkcont
+\newif\ifbkcount
+\newcount\bk@lcnt
+
+\def\breakboxskip{2pt}
+\def\breakboxparindent{1.8em}
+
+\def\breakbox{\vskip\breakboxskip\relax
+\setbox\bk@bxb\vbox\bgroup
+\advance\linewidth -2\fboxrule
+\advance\linewidth -2\fboxsep
+\hsize\linewidth\@parboxrestore
+\parindent\breakboxparindent\relax}
+
+% \@tempdimb: amount of vertical skip
+% between the first line (\bk@bxa) and the rest (\bk@bxb)
+\def\bk@split{%
+\@tempdimb\ht\bk@bxb % height of original box
+\advance\@tempdimb\dp\bk@bxb
+\setbox\bk@bxa\vsplit\bk@bxb to\z@ % split it
+\setbox\bk@bxa\vbox{\unvbox\bk@bxa}% recover height & depth of \bk@bxa
+\setbox\@tempboxa\vbox{\copy\bk@bxa\copy\bk@bxb}% naive concatenation
+\advance\@tempdimb-\ht\@tempboxa
+\advance\@tempdimb-\dp\@tempboxa}% gap between two boxes
+
+% \@tempdima: height of the first line (\bk@bxa) + fboxsep
+\def\bk@addfsepht{%
+ \setbox\bk@bxa\vbox{\vskip\fboxsep\box\bk@bxa}}
+
+\def\bk@addskipht{%
+ \setbox\bk@bxa\vbox{\vskip\@tempdimb\box\bk@bxa}}
+
+% \@tempdima: depth of the first line (\bk@bxa) + fboxsep
+\def\bk@addfsepdp{%
+ \@tempdima\dp\bk@bxa
+ \advance\@tempdima\fboxsep
+ \dp\bk@bxa\@tempdima}
+
+% \@tempdima: depth of the first line (\bk@bxa) + vertical skip
+\def\bk@addskipdp{%
+ \@tempdima\dp\bk@bxa
+ \advance\@tempdima\@tempdimb
+ \dp\bk@bxa\@tempdima}
+
+\def\bk@line{%
+ \hbox to \linewidth{\ifbkcount\smash{\llap{\the\bk@lcnt\ }}\fi
+ \vrule \@width\fboxrule\hskip\fboxsep
+ \box\bk@bxa\hfil
+ \hskip\fboxsep\vrule \@width\fboxrule}}
+
+\def\endbreakbox{\egroup
+\ifhmode\par\fi{\noindent\bk@lcnt\@ne
+\@bkconttrue\baselineskip\z@\lineskiplimit\z@
+\lineskip\z@\vfuzz\maxdimen
+\bk@split\bk@addfsepht\bk@addskipdp
+\ifvoid\bk@bxb % Only one line
+\def\bk@fstln{\bk@addfsepdp
+\vbox{\hrule\@height\fboxrule\bk@line\hrule\@height\fboxrule}}%
+\else % More than one line
+\def\bk@fstln{\vbox{\hrule\@height\fboxrule\bk@line}\hfil
+\advance\bk@lcnt\@ne
+\loop
+ \bk@split\bk@addskipdp\leavevmode
+\ifvoid\bk@bxb % The last line
+ \@bkcontfalse\bk@addfsepdp
+ \vtop{\bk@line\hrule\@height\fboxrule}%
+\else % 2,...,(n-1)
+ \bk@line
+\fi
+ \hfil\advance\bk@lcnt\@ne
+\if@bkcont\repeat}%
+\fi
+\leavevmode\bk@fstln\par}\vskip\breakboxskip\relax}
+
+\bkcountfalse
+%%%% fin macro %%%%
+
+L'encadrement du texte est obtenu par l'environnement breakbox.
+
+\bkcounttrue : les lignes sont numérotées.
+\bkcountfalse : elles ne le sont pas (défaut).
+
+On peut emboîter des environnements breakbox.
+
+# 6.21 # Comment gérer des URL WWW ?
+------------------------------------
+* Il existe le package 'url' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ qui permet de gérer les
+coupures des URL WWW un peu longues. Il est également capable de
+gérer les adresses e-mail, les liens hypertexte, les noms de
+directories. En outre, cet outil est paramètrable.
+
+Exemple :
+\usepackage{url}
+\urlstyle{sf}
+..
+\url{http://hostname/~username}
+%%%% fin exemple %%%%
+
+* Le package 'path' disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/eplain/
+offre les mêmes possibilités.
+
+* La macro \discretionary permet également de dire comment
+couper une chaîne de caractères :
+\discretionary{Avant la coupure}{après}{s'il n'y en a pas}
+
+Remarque : \- est défini comme \discretionary {-}{}{}
+
+# 6.22 # Comment mettre en page des exercices dont les solutions sont reportées dans un autre paragraphe ?
+----------------------------------------------------------------------------------------------------------
+L'objectif ici est de pouvoir saisir dans le fichier source les
+textes des exercices suivis de leurs solutions, alors qu'au
+niveau de la mise en page du document, les solutions
+apparaîssent groupées dans un autre paragraphe/chapitre.
+
+* Le package 'answers', de M. Piff, disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/answers/ permet également de
+réaliser ce genre d'exercice. Il permet entre autres :
++ d'avoir plusieurs types de solutions (ex: réponse numérique
+seule ou détail),
++ d'inclure les solutions (l'une, l'autre ou les deux dans
+le cas précité) dans le texte (après une marque spécifique
+si désiré),
++ mettre les solutions à la fin,
++ ne pas mettre les solutions.
+
+Exemple :
+%%
+%% This is file `ansexam2.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% answers.dtx (with options: `ex2')
+%%
+\documentclass[12pt,a4paper]{article}
+\usepackage{answers}%\usepackage[nosolutionfiles]{answers}
+% def d'un environnement Exercise numerote
+\newtheorem{Exc}{Exercise}
+\newenvironment{Ex}{\begin{Exc}\normalfont}{\end{Exc}}
+% Trois types de solutions sont proposes
+\Newassociation{solution}{Soln}{test}
+\Newassociation{hint}{Hint}{test}
+\Newassociation{Solution}{sSol}{testtwo}
+\newcommand{\prehint}{~[Hint]}
+\newcommand{\presolution}{~[Solution]}
+\newcommand{\preSolution}{~[Homework]}
+% test
+\newcommand{\Opentesthook}[2]%
+ {\Writetofile{#1}{\protect\section{#1: #2}}}
+% introduction de la solution
+\renewcommand{\Solnlabel}[1]{\emph{Solution #1}}
+\renewcommand{\Hintlabel}[1]{\emph{Hint #1}}
+\renewcommand{\sSollabel}[1]{\emph{Solution to #1}}
+
+\begin{document}
+% gestion des fichiers contenant les solutions
+ \Opensolutionfile{test}[ans2]{Solutions}
+ \Writetofile{test}{\protect\subsection{Some Solutions}}
+ \Opensolutionfile{testtwo}[ans2x]
+ \Writetofile{testtwo}{%
+ \protect\subsection{Extra Solutions}}
+
+ % Exercices
+ \section{Exercises}
+ \begin{Ex}
+ An exercise with a solution.
+ \begin{solution}
+ This is a solution.
+ \relax{}
+ \end{solution}
+ \end{Ex}
+ \begin{Ex}
+ An exercise with a hint and a secret solution.
+ \begin{hint}
+ This is a hint.
+ \end{hint}
+ \begin{Solution}
+ This is a secret solution.
+ \end{Solution}
+ \end{Ex}
+ \begin{Ex}
+ An exercise with a hint.
+ \begin{hint}
+ This is a hint.
+ \end{hint}
+ \end{Ex}
+ % gestion des fichiers contenant les solutions
+ \Closesolutionfile{test}
+ \Readsolutionfile{test}
+ % \clearpage
+ \hrule
+ \Closesolutionfile{testtwo}
+ \Readsolutionfile{testtwo}
+\end{document}
+%%
+%% End of file `ansexam2.tex'.
+
+%%%% fin exemple %%%%
+
+* On peut également trouver le package 'exam' sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/exams/.
+
+# 6.23 # Comment positionner un objet dans une page ?
+-----------------------------------------------------
+* Pour pouvoir positionner un objet aux coordonnées x,y par
+rapport au coin supérieur gauche d'une page, il suffit d'utiliser
+le package 'atxy' disponible par ftp sur
+ftp://ftp.univ-orleans.fr/pub/tex/PC/AsTeX/Paq_Base/ dans
+le fichier l209misc.zip.
+
+Exemple :
+\atxy(3cm,2.5cm) {toto adresse toto}
+\atxy(3cm,4cm) {date}
+%%%% fin exemple %%%%
+
+Remarque : petit défaut, si le document ne contient que des
+ commandes \atxy il n'y a pas de dvi généré. Il faut
+ donc ajouter n'importe quoi au début du document, ~
+ par exemple, pour que ça marche.
+
+# 6.24 # Comment lier le placement des flottants aux sections ?
+---------------------------------------------------------------
+Pour lier la position des éléments flottants aux limites de
+sections, D. Arseneau a développé le package 'placeins'
+disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/. Ce
+package définit la commande \FloatBarrier qui force le placement
+des flottants avant son appel.
+
+# 6.25 # Comment griser le fond (background) d'un paragraphe ?
+--------------------------------------------------------------
+* Le package 'psboxit', disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex2.09/contrib/misc/ et en particulier
+l'environnement "boxitpara" permet de faire cela.
+
+* Le package 'shadbox' disponible sur CTAN dans
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/shadbox/ permet de griser toute
+boîte, texte, figure, ....
+
+* Le package 'shading' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/shading/ permet de griser un
+paragraphe.
+
+* De même, le package 'shade', de P. Schmitt, est disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/generic/.
+
+* On peut également utiliser le package 'color'.
+
+Exemple :
+\colorbox[gray]{0.5}{some words}
+%%%% fin exemple %%%%
+
+# 6.26 # Comment modifier l'espace inter-colonnes ?
+---------------------------------------------------
+Il faut modifier la variable \columnsep.
+
+Exemple :
+\addtolength{\columnsep}{5mm}
+%%%% fin exemple %%%%
+
+# 6.27 # Comment modifier les environnements de liste ?
+-------------------------------------------------------
+* L'environnement list permet de définir son propre style de
+liste. Sa syntaxe est la suivante :
+\begin{list}{label}{mep}\end{list}
++ l'argument label permet de définir le symbole qui sera
+associé à chaque élément de la liste.
++ mep permet de définir la mise en page des éléments de la
+liste. Les paramètres utilisés pour définir cette mise en page
+sont les suivants :
+\topsep espace vertical supplémentaire (ajoute à \parskip)
+ inséré entre le texte précédant la liste et le 1er objet
+ de la liste
+\partosep espace vertical supplémentaire inséré devant la liste
+ si celle-ci est précédée d'une ligne blanche
+\itemsep espace vertical supplémentaire (ajouté à \parsep)
+ inséré entre les éléments d'une liste.
+
+Exemple :
+\newenvironment{maliste}%
+{ \begin{list}%
+ {$\bullet$}%
+ {\setlength{\labelwidth}{30pt}%
+ \setlength{\leftmargin}{35pt}%
+ \setlength{\itemsep}{\parsep}}}%
+{ \end{list} }
+
+Utilisation :
+\begin{maliste}
+ \item premier élément
+ \item deuxième élément
+ \begin{maliste}
+ \item petit 1
+ \item petit 2
+ \end{maliste}
+\end{maliste}
+%%%% fin exemple %%%%
+
+* Le petit bout de code ci-dessous, de M. Boyer
+(mboyer@robot.ireq.ca), définit les commandes :
++ \noitemsep pour supprimer tout espacement vertical entre les
+items des environnements \itemize, \enumerate et \description.
++ \doitemsep pour les remettre.
+Pour l'utiliser, il suffit de le sauvegarder dans un fichier
+.sty et de l'inclure dans son document par une commande
+\usepackage.
+
+%%%% debut macro %%%%
+%% ----------------------------------------------------
+%% Copyright (c) 1993 Hydro-Quebec mboyer@robot.ireq.ca
+%% ----------------------------------------------------
+
+%% Bring items closer together in list environments
+% Prevent infinite loops
+\let\orig@Itemize =\itemize
+\let\orig@Enumerate =\enumerate
+\let\orig@Description =\description
+% Zero the vertical spacing parameters
+\def\Nospacing{\itemsep=0pt\topsep=0pt\partopsep=0pt%
+\parskip=0pt\parsep=0pt}
+% Redefinition de art12.sty pour commencer a la marge de gauche
+%\leftmargini 1.2em % 2.5em
+
+\def\noitemsep{
+% Redefine the environments in terms of the original values
+\renewenvironment{itemize}{\orig@Itemize\Nospacing}{\endlist}
+\renewenvironment{enumerate}{\orig@Enumerate\Nospacing}{\endlist}
+\renewenvironment{description}{\orig@Description\Nospacing}%
+{\endlist}
+}
+
+\def\doitemsep{
+% Redefine the environments to the original values
+\renewenvironment{itemize}{\orig@Itemize}{\endlist}
+\renewenvironment{enumerate}{\orig@Enumerate}{\endlist}
+\renewenvironment{description}{\orig@Description}{\endlist}
+}
+%%%% fin macro %%%%
+
+* La macro ci-dessous de T. Murphy permet de remplacer les
+numéros de l'environnement enumerate par des caractères grecs :
+%%%% debut macro %%%%
+\makeatletter
+\def\greek#1{\expandafter\@greek\csname c@#1\endcsname}
+\def\@greek#1{\ifcase#1\or$\alpha$\or$\beta$\fi}% as many as you
+% need
+\renewcommand{\theenumi}{\greek{enumi}}
+\makeatother
+%%%% fin macro %%%%
+
+* Les définitions suivantes :
+\renewcommand{\labelitemi}{\textbullet}
+\renewcommand{\labelitemii}{---}
+\renewcommand{\labelitemiii}{votre-label-pour-le-niveau-iii}
+\renewcommand{\labelitemiv}{votre-label-pour-le-niveau-iv}
+permettent de redéfinir les caractères utilisés par
+l'environnement itemize pour ces différents niveaux
+d'encapsulation.
+
+Remarque : avec certains packages comme french, il faut placer
+ ces nouvelles définitions de commande après le
+ \begin{document}.
+
+De même, utilisez \descriptionlabel pour changer le style des
+étiquettes de l'environment description.
+
+Exemple :
+\renewcommand\descriptionlabel[1]{\hspace\labelsep\normalfont%
+\itshape #1:}
+produit des étiquettes en italique, avec deux points :
+\begin{description}
+ \item[Carte maîtresse] As
+ \item[Carte maîtresse à l'atout] Valet
+\end{description}
+%%%% fin exemple %%%%
+
+* Pour réduire globalement l'espace entre les items d'une liste
+on peut également utiliser le bout de code suivant de M. Wooding
+%%%% debut macro %%%%
+\makeatletter
+\toks@\expandafter{\@listI}
+\edef\@listI{\the\toks@\setlength{\parsep}{1pt}}
+\makeatother
+%%%% fin macro %%%%
+
+* Le package 'mdwlist', de M. Wooding, disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/mdwtools/ permet de
+redéfinir certains paramètres de mise en page des listes qui ne
+sont pas faciles d'accès sous LaTeX.
+
+# 6.28 # Comment souligner plusieurs lignes ?
+---------------------------------------------
+Pour souligner un texte qui comprend des retours à la ligne, il
+faut utiliser le package 'ulem' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/. Ce package redéfinit en
+fait le mode emphasize. Les commandes \normalem et \ULforem
+permettent de passer du mode \emph classique au mode \emph
+souligné. En mode souligné, la commande devient paramétrable pour
+changer le style du souligné ou biffer des mots.
+
+Exemple :
+\documentclass{report}
+\usepackage{french}
+\usepackage[normalem]{ulem}
+\pagestyle{empty}
+\begin{document}
+
+\normalem
+Voici le mode "\emph{emphasize}" classique.
+
+\ULforem
+Voici le mode "\emph{emphasize}" souligné. \emph{Il permet
+également de gérer les retours à la ligne tout en restant dans
+le style emphasize.}
+
+Les autres possibilités sont les suivantes~:
+\begin{itemize}
+ \item vagues~: \uwave{texte}
+ \item barré~: \sout{texte}
+ \item rayé~: \xout{texte}
+\end{itemize}
+
+\end{document}
+%%%% fin exemple %%%%
+
+Remarque : \underline ne permet pas de gérer les retours à la
+ ligne du fait qu'il encapsule le texte passé en
+ argument dans une boîte.
+
+# 6.29 # Comment réaliser des onglets ?
+---------------------------------------
+* Pour insérer un carré noir, décalé vers le bas à chaque
+nouveau chapitre, le long de la marge des pages de droite d'un
+document, on peut utiliser le package 'fancyhdr' ou
+'fancyheadings'. Ces packages sont disponibles sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/fancyhdr/ et
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/.
+
+Remarque : On note toutefois qu'il est peu probable qu'une
+ imprimante puisse accéder au ras de la marge. La
+ solution consiste alors à définir un format de
+ document plus petit et utiliser le massicot.
+ Attention dans ce cas lors de la définition des
+ marges.
+
+* On peut également utiliser le package 'onglet' défini
+ci-dessous par B. Bayart. Celui-ci nécessite le package
+'everyshi' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/everyshi/.
+
+%%%% debut macro %%%%
+\ProvidesPackage{onglet}[1996/07/25 B. Bayart]
+\RequirePackage{everyshi}
+
+\newcounter{maxchapter}
+\newcounter{tmpa}
+\newlength{\basehauteur}
+\setlength{\basehauteur}{1cm}
+\newlength{\ajoutdroite}
+\newlength{\htcclv}
+\def\concatener{%
+ \setlength{\ajoutdroite}{\textheight}
+ \divide\ajoutdroite by \basehauteur
+ \setcounter{maxchapter}{\number\ajoutdroite}
+ \setcounter{tmpa}{\value{chapter}}
+ \addtocounter{tmpa}{-1}
+ \divide\value{tmpa} by\value{maxchapter}
+ \multiply\value{tmpa} by\value{maxchapter}
+ \advance\value{tmpa} by -\value{chapter}
+ \addtocounter{tmpa}{-1}
+ \setlength{\ajoutdroite}{\paperwidth}
+ \setlength{\htcclv}{\ht255}
+ \addtolength{\ajoutdroite}{-\wd255}
+ \addtolength{\ajoutdroite}{-1in}
+ \addtolength{\ajoutdroite}{-1.5cm}
+ \setbox255=\vbox{\hbox to \wd255{%
+ \box255%\relax
+ \rlap{\vbox to \htcclv{%
+ \vskip-\value{tmpa}\basehauteur
+ \hbox{%
+ \hskip\ajoutdroite\relax
+ \usebox{\laboite}%
+ }%
+ \vfill
+ }}%
+ \hfill}}%
+}
+\newsavebox{\laboite}
+\def\faireboite{\sbox{\laboite}%
+{\hbox to 1.5cm{\let\protect\relax
+\huge\thechapter\hfill\vrule height 1em depth 0pt width 5mm}}}
+
+\AtBeginDocument{\EveryShipout{\faireboite\concatener}}
+\endinput
+%%%% fin macro %%%%
+
+# 6.30 # Comment réaliser des QCM ?
+-----------------------------------
+Il existe le package 'exam' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/exams/. Ce package permet
+entre autres de paramétrer les questions de manière à ce que les
+propositions apparaîssent dans un ordre aléatoire.
+
+Exemple :
+Combien le cheval possède t'il de pattes ?
+\begin{choice}[\random]
+ \baditem{deux pattes}
+ \baditem{quatres pattes}
+ \baditem{zéro patte}
+\end{choice}
+%%%% fin exemple %%%%
+
+# 6.31 # Comment modifier l'orientation des flottants ?
+-------------------------------------------------------
+* Le package 'rotating' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/rotating/ offre deux
+environnements sidewaysfigure pour les figures et sidewaystable
+pour les tableaux. Les figures ou tableaux sont alors insérés sur
+une page séparée.
+
+Exemple :
+\begin{sidewaystable}
+ \begin{tabular}{|c|c|}
+ \hline
+ Un & Deux \\
+ Trois & Quatre \\
+ \hline
+ \end{tabular}
+\end{sidewaystable}
+%%%% fin exemple %%%%
+
+* On peut également utiliser l'environnement sideways du
+package 'rotating'. De la même manière cet environnement génère
+une page séparée.
+
+Exemple :
+\begin{figure}
+ \begin{sideways}
+ \includegraphics{foobar.ps}
+ \end{sideways}
+\end{figure}
+%%%% fin exemple %%%%
+
+Remarque : il est fréquent que les visualiseurs de fichiers dvi
+ ne sachent pas gérer les changements d'orientation à
+ l'intérieur d'un document. Il faut pour voir le
+ résultat définitif utiliser un visualiseur de
+ postscript.
+
+# 6.32 # Comment faire référence plusieurs fois à la même note de bas de page ?
+-------------------------------------------------------------------------------
+* Il faut utiliser les commandes \footnotemark[] et
+\footnotetext[]{}. \footnotemark permet de gérer le compteur de
+notes et \footnotetext permet d'insérer le texte correspondant
+en bas de page.
+
+Exemple :
+bla blabla\footnotemark[1] bla bla bla blablabla\footnotemark[2]
+bla bla bla bla blabla\footnotemark[1] bla.
+
+\footnotetext[1]{double bla}
+\footnotetext[2]{triple bla}
+%%%% fin exemple %%%%
+
+* Avec french, on peut utiliser la commande \refmark.
+
+Exemple :
+le vrai appel\footnote{C'est une note en bas de
+page\label{manote}} et le deuxieme appel\refmark{manote}
+%%%% fin exemple %%%%
+
+Remarque : Si vous n'utilisez pas french, cette macro \refmark
+ est décrite dans le cahier Gutenberg numéro 15, avril
+ 1993, page 52. Ce cahier est accessible à l'URL :
+ http://www.gutenberg.eu.org/publications/.
+
+# 6.33 # Comment éviter les orphelins en début ou fin de page ?
+---------------------------------------------------------------
+* Il suffit d'ajouter les lignes :
+%%%% debut macro %%%%
+\widowpenalty=10000
+\clubpenalty=10000
+\raggedbottom
+%%%% fin macro %%%%
+dans le préambule du document.
+
+* Pour agir localement, on peut également utiliser la commande
+\enlargethispage (cf. question 6.11).
+
+# 6.34 # Comment définir de nouveaux flottants ?
+------------------------------------------------
+Le package 'float' de G. Williams, disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/float/, permet de définir
+de nouveaux objets flottants. Il définit notamment des
+environnements permettant d'encadrer des objets ou de les séparer
+du reste du texte par des lignes horizontales.
+
+Exemple :
+\documentclass[11pt]{report}
+\usepackage{float}
+\usepackage{french}
+
+\floatstyle{ruled} % pour que mes flottants soient séparés du
+ % texte par des lignes.
+\newfloat{important}{htbp}{loi}[section]
+ % important est le nom de mon nouvel environnement
+ % htbp sont les options de placement de mon flottant
+ % loi est l'extension du fichier qui sera utilise pour
+ % construire la liste de mes flottants
+ % section est le niveau duquel dependra la numerotation
+ % de mes flottants
+\floatname{important}{Important} % titre du caption
+
+\begin{document}
+
+\listof{important}{Liste des textes importants.} % titre de la
+ % liste de mes flottants.
+
+\chapter{Règles de bases.}
+
+\section{Hommes célèbres.}
+
+ Parmi les citations des hommes célèbres dans le domaine que
+ nous étudions actuellement, il faut retenir celle de M.
+ Maxime rappelée dans le cadre~\ref{imp-max}.
+
+ \begin{important}
+ M. Maxime a dit un jour~:
+ \begin{quote}
+ Chacun doit se faire ses propres raisons.
+ \end{quote}
+ \caption{Adage de M. Maxime.}
+ \end{important}
+
+ Notez que~\ldots
+\end{document}
+%%%% fin exemple %%%%
+
+# 6.35 # Comment utiliser la commande \caption hors d'un environnement flottant ?
+---------------------------------------------------------------------------------
+* Pour pouvoir attacher un titre de style table à un
+environnement non flottant (i.e. autre que figure ou table), il
+faut définir :
+%%%% debut macro %%%%
+\makeatletter
+\def\@captype{table}
+\makeatother
+%%%% fin macro %%%%
+
+Exemple :
+Texte sur les couleurs.
+
+\begin{itemize}
+ \item rouge
+ \item vert
+ \item bleu
+\end{itemize}
+\caption{Liste des couleurs primaires.}
+
+Texte.
+%%%% fin exemple %%%%
+
+* La macro suivante propose une autre possibilité pour obtenir
+un titre de style table :
+%%%% debut macro %%%%
+\makeatletter
+\def\captionof#1#2{{\def\@captype{#1}#2}}
+\makeatother
+%%%% fin macro %%%%
+
+Exemple :
+\begin{document}
+un texte
+
+\captionof{table}{\caption{un titre ici}\label{foo}}
+
+un autre texte
+\end{document}
+%%%% fin exemple %%%%
+
+* Le package 'capt-of' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ définit la commande
+\captionof.
+
+# 6.36 # Comment encadrer un objet flottant ?
+---------------------------------------------
+* Il faut utiliser le package 'float' qui définit le style
+boxed. Ce package est disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/float/. Voir la question
+6.34 pour un exemple plus complet.
+
+Exemple :
+Dans le préambule :
+\floatstyle{ruled}
+\newfloat{nom-flottant}{placement}{ext-fic}[numerotation]
+dans le corps du document :
+\begin{nom-flottant}
+
+\end{nom-flottant}
+%%%% fin exemple %%%%
+
+* Si le titre accompagnant le flottant peut être à l'extérieur
+du cadre désiré, on peut alors utiliser \fbox dans la
+déclaration du flottant.
+
+Exemple :
+\begin{table}
+ \begin{center}
+ \fbox{
+ \begin{tabular}{cll}
+ &1 case & 2 cases \\
+ &3 cases & 4 cases \\\hline
+ Total~: & 4 cases & 6 cases \\
+ \end{tabular}
+ }
+ \end{center}
+ \caption{Titre extérieur.}
+\end{table}
+%%%% fin exemple %%%%
+
+* M. Loreti propose également le package 'bigbox' ci-dessous :
+%%%% debut macro %%%%
+% I like to put boxes around all of my figures and algorithms in
+% reports, and finally came up with my 'bigbox' environment. It
+% makes a box as wide as the current text and sets the stuff
+% inside with a narrower width.
+%
+% USAGE:
+%
+% \begin{figure} (or {table}, or {center}, or ...)
+% \begin{bigbox}
+% \begin{tabbing}
+% ...
+% \end{tabbing}
+% \end{bigbox}
+% \caption{XXX}
+% \end{figure}
+%
+%%% BIGBOX - environment
+%%%
+%%% TOM SHEFFLER
+%%% Carnegie Mellon, Aug 1990
+%%%
+%%% Make an environment for boxing a figure and setting it in
+%%% a narrower width.
+\newdimen\boxfigwidth % width of figure box
+
+\def\bigbox{\begingroup
+ % Figure out how wide to set the box in
+ \boxfigwidth=\hsize
+ \advance\boxfigwidth by -2\fboxrule
+ \advance\boxfigwidth by -2\fboxsep
+ \setbox4=\vbox\bgroup\hsize\boxfigwidth
+ % Make an invisible hrule so that the box is exactly this wide
+ \hrule height0pt width\boxfigwidth\smallskip%
+% Some environments like TABBING and other LIST environments
+% use this measure of line size - \LINEWIDTH=\HSIZE-\LEFTMARGIN-\RIGHTMARGIN?
+ \linewidth=\boxfigwidth
+}
+\def\endbigbox{\smallskip\egroup\fbox{\box4}\endgroup}
+%%%% fin macro %%%%
+
+Exemple :
+\documentclass[11pt]{report}
+\usepackage{graphics}
+\usepackage{bigbox}
+\usepackage{french}
+\pagestyle{empty}
+\begin{document}
+
+\begin{figure}
+ \begin{bigbox}
+ \includegraphics{../foobar.ps}
+ \end{bigbox}
+ \caption{Dessin.}
+\end{figure}
+
+\end{document}
+%%%% fin exemple %%%%
+
+# 6.37 # Comment changer l'orientation d'un caption ?
+-----------------------------------------------------
+La commande \rotcaption fournie avec le package 'rotating'
+permet de changer l'orientation d'un caption.
+
+Exemple :
+\begin{figure}
+ \centering
+ \begin{minipage}[c]{1in}
+ \includegraphics[angle=90,width=\linewidth]{coco.ps}
+ \end{minipage}
+ \begin{minipage}
+ \rotcaption{Ma jolie figure coco}
+ \label{coco}
+ \end{minipage}
+\end{figure}
+%%%% fin exemple %%%%
+
+# 6.38 # Comment mettre en page un programme ?
+----------------------------------------------
+Les packages 'program' (disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/program/) et 'programs'
+permettent de mettre en reliefs des mots clés, d'utiliser des
+mathématiques dans des algorithmes, etc.
+
+# 6.39 # Comment inclure le source d'un programme ?
+---------------------------------------------------
+Les packages 'lgrind' et 'listings' répondent à la question
+(disponibles sur ftp://ftp.fdn.org/pub/CTAN/support/lgrind/ et
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/listings/). Ils
+reconnaissent tous les 2 à peu près 40 langages différents.
+
+Le premier est composé d'un exécutable, 'lgrind' qui permet de
+transformer le source en question, par exemple, monfichier.c, en
+monfichier.tex, que l'on inclut directement dans son fichier
+LaTeX, à l'aide d'une commande appropriée. L'inconvénient, est
+qu'évidemment, il y a un fichier .tex qui est généré en plus.
+
+Notes : - utiliser au-moins la version 3.6 ;
+ - on peut paramétrer lgrind avec le fichier lgrindef. Par
+ défaut, l'auteur a jugé utile de transformer la lettre
+ « à » en $\alpha$. Il suffit donc de commenter cette
+ option à la fin de ce fichier pour éviter cela.
+
+Le deuxième ne nécessite pas de recompilation. On inclut
+directement le source, avec une commande adéquate. Avec ce
+package, on peut même définir son propre langage, le faire
+hériter d'un autre langage, avec des mots-clés spécifiques, etc.
+
+À noter que, moyennant quelques paramètres à ajouter, il est tout
+à fait possible de faire en sorte que ces packages reconnaissent
+les fontes 8 bits. On peut lui faire comprendre par exemple, que
+lorsqu'il rencontre le caractère « ¹ », il le transforme en
+$\mathonesuperior$.
+
+# 6.40 # Comment obtenir un espace insécable ?
+----------------------------------------------
+Le caractère ~ est interprété par LaTeX et permet d'obtenir un
+espace insécable.
+
+Exemple :
+Comme le montre l'exemple suivant~: $a + 2 = 0$.
+%%%% fin exemple %%%%
+
+# 6.41 # Comment insérer une page blanche ?
+-------------------------------------------
+* Pour forcer LaTeX à laisser une page blanche dans un document,
+il faut utiliser successivement les trois commandes :
+\newpage
+\strut ou ~ ou \mbox{} ou \null
+\newpage
+
+Le principe est qu'il y ait quelque chose d'invisible sur la
+page blanche pour que LaTeX la prenne en compte.
+
+# 6.42 # Comment supprimer l'indentation des paragraphes ?
+----------------------------------------------------------
+* \noindent au début du texte permet de ne pas indenter un
+paragraphe.
+
+* Pour systématiquement supprimer l'indentation du premier
+paragraphe d'une section par exemple, il faut redéfinir la
+commande \section. Il faut que le 4ème paramètre de
+\@startsection soit une distance négative, pour qu'il n'y ait
+pas de retrait au premier paragraphe du texte qui suit :
+
+%%%% debut macro %%%%
+\makeatletter
+\renewcommand\section{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+%%%%%% ^^^^ (4eme parametre)
+ {2.3ex \@plus.2ex}%
+ {\normalfont\Large\bfseries}}
+\makeatother
+%%%% fin macro %%%%
+
+# 6.43 # Comment modifier l'espacement entre caractères ?
+---------------------------------------------------------
+* Le package 'letterspace' permet de modifier l'espacement entre
+mots ou caractères.
+
+* Le package 'trackin' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/tracking/ permet de jouer sur
+les espacements dans les mots ou les phrases pour les ajuster
+dans une longueur spécifiée.
+
+# 6.44 # Comment supprimer certaines coupures de mots ?
+-------------------------------------------------------
+* Pour agir sur un mot particulier, il faut utiliser la commande
+\hyphenation.
+
+Exemple :
+Visualisation des coupures :
++\showhyphens{mousehole AlGaAs GaAs GaInP AlInP}
+
+ Underfull \hbox (badness 10000) detected at line 0
+ [] \OT1/cmr/m/n/10 mouse-hole Al-GaAs GaAs GaInP Al-InP
+
+Interdiction de certaines coupures :
++\hyphenation{AlGaAs GaAs GaInP AlInP}
++\showhyphens{mousehole AlGaAs GaAs GaInP AlInP}
+
+ Underfull \hbox (badness 10000) detected at line 0
+ [] \OT1/cmr/m/n/10 mouse-hole AlGaAs GaAs GaInP AlInP
+%%%% fin exemple %%%%
+
+* Moins propre mais tout aussi efficace, on peut inclure le mot
+à ne pas couper dans une hbox.
+
+Exemple :
+Même quand il est en bout de ligne ce mot très long n'est pas
+coupé CeMotTrèsLongNestPasCoupé.
+
+Même quand il est en bout de ligne ce mot très long n'est pas
+coupé \hbox{CeMotTrèsLongNestPasCoupé}.
+%%%% fin exemple %%%%
+
+* Pour empêcher LaTeX de couper les mots dans un paragraphe il
+suffit de l'encadrer par les commandes \begin{sloppypar} et
+\end{sloppypar}.
+
+* Pour empêcher LaTeX de couper les mots dans tout un document,
+il faut utiliser la commande \sloppy dans le préambule du
+document. On peut également utiliser la déclaration :
+\hyphenpenalty 10000.
+
+* De manière globale, on peut aussi déclarer :
+\DeclareFontFamily{T1}{cmr}{\hyphenchar\font=-1}
+
+* Pour interdire la coupure de tous les mots commençant par une
+majuscule, il faut utiliser : \uchyph=0 dans le préambule du
+document.
+
+* On peut également interdire la coupure des mots d'une langue
+particulière dans un document multilingues en utilisant l'astuce
+suivante : il suffit de créer un fichier de motifs de césures
+vide, par exemple pour le russe
+%%%% debut macro %%%%
+%%% ruhyph.tex %%%
+\patterns{}
+\endinput
+%%%%%%%%%%%%%%%%%%%
+%%%% fin macro %%%%
+et dans le fichier language.dat ajouter la ligne
+russian ruhyph.tex
+
+# 6.45 # Comment mettre en forme des équations chimiques ?
+----------------------------------------------------------
+* Le package 'ppchtex' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/context/ permet d'écrire des formules chimiques.
+
+* Sur Mac ou PC, il existe MDL qui est une version freeware
+d'ISIS Draw qui permet de créer ses propres structures et de les
+sauver sous format eps. Pour plus de détails, consulter
+http://www.mdli.com/prod/ioffer.html.
+
+* Il existe le package 'chemsym' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/chemsym/.
+
+* Le package 'XymTex' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/xymtex/ ou
+ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/xymtex/ permet de définir des
+structures chimiques.
+
+Remarques (F. Jacquet) :
++ XyMTeX est incompatible avec le package french de B. Gaulle.
+Pour utiliser les deux dans un même document, il suffit de
+repasser en mode \english avant la macros puis \french après. Je
+ne sais pas comment cela fonctionne pour les \caption mais en
+théorie, ça devrait marcher !
+AL: Vérifier la réalité de cette remarque par rapport au dernier french.
++ XyMTeX possède le gros défaut de ne pas pouvoir faire de
+longues chaînes aliphatiques si on ne sait pas programmer le
+nombre de points entre deux structures. Le plus simple dans ce
+cas est donc l'emploi de Xfig (ou autre).
++ On ne peut pas imbriquer les formules, ce qui gène
+considérablement son utilisation; en revanche, pour les
+cholestérol l'ensemble est très puissant !
+
+# 6.46 # Comment mettre en page un calendrier ?
+-----------------------------------------------
+* Le package 'termcal' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/termcal/ permet de mettre
+en page un calendrier. Il permet de préciser quels jours doivent
+apparaître et d'insérer du texte soit régulièrement à certaines
+dates soit à des dates particulières.
+
+* Le package 'calendar ' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/plain/contrib/ propose un ensemble de macros pour
+mettre en page des calendriers.
+
+* Un autre package 'calendar' est également disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/calendar/.
+
+* Il existe également le package 'yplan97' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/yplan97/.
+
+# 6.47 # Comment forcer un caption sur plusieurs lignes ?
+---------------------------------------------------------
+Pour forcer un retour à la ligne dans un caption, il faut
+utiliser \caption[text1]{text2 \\\hspace{\linewidth} text3}.
+
+Remarque : text1 est le texte qui apparaîtra dans la liste des
+figures ou des tableaux.
+
+# 6.48 # Comment générer des barres de modification dans un document ?
+----------------------------------------------------------------------
+Il suffit d'utiliser le package 'changebar' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/changebar/.
+
+Exemple :
+dans le préambule :
+\usepackage[outerbars]{changebar} % permet de positionner les
+ % barres en marge externe
+\setcounter{changebargrey}{20} % permet de fixer le niveau de
+ % gris des barres
+
+et dans le document :
+\begin{changebar}
+ texte..
+\end{changebar}
+
+ou
+
+ancien texte ancien texte ancien texte \cbstart nouveau
+texte nouveau texte nouveau texte \cbend ancien texte ancien
+texte ancien texte ancien texte
+%%%% fin exemple %%%%
+
+# 6.49 # Comment encadrer du texte verbatim ?
+---------------------------------------------
+* Le package 'moreverb' propose un environnement encadré.
+
+Exemple : \begin{boxedverbatim} La commande \LaTeX permet
+d'appeler le logo
+ LaTeX.
+\end{boxedverbatim}
+%%%% fin exemple %%%%
+
+# 6.50 # Comment écrire du texte en forme de losange ou autre ?
+---------------------------------------------------------------
+Le package 'shapepar' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ définit des
+environnements losange, coeur, etc.
+
+Exemple :
+\diamondpar{mon paragraphe en forme de losange.}
+%%%% fin exemple %%%%
+
+# 6.51 # Comment isoler les flottants par un trait horizontal ?
+---------------------------------------------------------------
+* Pour que les flottants qui sont renvoyés en début
+(respectivement en fin) de page soient isolés du texte par un
+trait horizontal en dessous (respectivement au dessus), il faut
+activer les options suivantes dans le préambule du document :
+\let\topfigrule\hrule
+\let\botfigrule\hrule
+
+* Si leur comportement n'est pas satisfaisant, on peut le
+redéfinir :
+\newcommand{\topfigrule}{%
+ \vspace*{3pt}\noindent\rule{\linewidth}{0.4pt}\vspace{-3.4pt}}
+\newcommand{\botfigrule}{%
+ \vspace*{3pt}\noindent\rule{\linewidth}{0.4pt}\vspace{-3.4pt}}
+
+# 6.52 # Comment insérer un espace vertical dans une page ?
+-----------------------------------------------------------
+Il suffit d'utiliser la commande \vspace et de préciser en
+argument la hauteur de l'espace voulu.
+
+Exemple :
+Texte avant.
+
+\vspace{2cm}
+
+Texte après.
+%%%% fin exemple %%%%
+
+Remarque : la commande \vspace* force l'insertion d'un espace
+ vertical même si ce dernier se situe sur un
+ changement de page.
+
+# 6.53 # Comment insérer un espace horizontal dans un texte ?
+-------------------------------------------------------------
+De la même manière que pour les espaces verticaux, il existe la
+commande \hspace pour insérer un espace horizontal dans un
+texte.
+
+Exemple :
+blabla bla \hspace{3cm} bli bli bli
+%%%% fin exemple %%%%
+
+Remarque : la commande \hspace* force l'insertion d'un espace
+ même en début ou en fin de ligne.
+
+# 6.54 # Comment définir un style de paragraphe ?
+-------------------------------------------------
+* Pour agir de manière globale (sur tout le document), les
+paramètres de définition d'un paragraphe sont :
++ \parindent pour fixer la longueur des indentations
++ \parskip pour gérer l'espace entre les paragraphes.
+
+Exemple :
+\setlength{\parindent}{1cm}
+\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}
+%%%% fin exemple %%%%
+
+* Pour forcer (supprimer) localement l'indentation d'un
+paragraphe, il existe la commande \(no)indent.
+
+# 6.55 # À quoi sert la commande \stretch ?
+-------------------------------------------
+La commande \stretch{x} permet d'insérer un espace élastique qui
+va s'ajuster de manière à forcer l'occupation de toute une
+ligne (en mode horizontal) ou de toute une page (en mode
+vertical). Le paramètre x est appelé facteur d'élasticité, il
+intervient dès que plusieurs commandes \stretch sont appelées
+sur la même ligne.
+
+Exemples :
++ bla\hspace{\stretch{1}} bla bla \hspace{\stretch{2}} bla bla
+bla
+
++ un texte normal \vspace{\stretch{1}} et un texte qui finit de
+remplir la ligne courante et qui se poursuit tout en bas de la
+page sur la dernière ligne.
+%%%% fin exemple %%%%
+
+# 6.56 # Comment justifier un paragraphe à gauche ou à droite ?
+---------------------------------------------------------------
+* Les environnements flushleft et flushright permettent de
+justifier à gauche ou à droite une portion de texte.
+
+Exemple :
+\begin{flushleft}
+ Texte aligné à gauche. Texte aligné à gauche. Texte aligné à
+ gauche. Texte aligné à gauche. Texte aligné à gauche. Texte
+ aligné à gauche. Texte aligné à gauche. Texte aligné à
+ gauche. Texte aligné à gauche. Texte aligné à gauche. Texte
+ aligné à gauche.
+\end{flushleft}
+%%%% fin exemple %%%%
+
+* Il existe également les commandes \raggedright et \raggedleft.
+
+Exemple :
+{\raggedleft
+Colle à droite. Colle à droite. Colle à droite. Colle à droite.
+Colle à droite. Colle à droite. Colle à droite.
+
+Colle à droite. Colle à droite. Colle à droite. Colle à droite. Colle à
+droite. Colle à droite. }
+%%%% fin exemple %%%%
+
+* Le package 'ragged2e' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/ragged2e/ offre en plus des
+commandes (\Centering, \RaggedLeft, et \RaggedRight) et des
+environnements qui permettent de mieux gérer les césures.
+
+# 6.57 # Comment mettre en page des citations ?
+-----------------------------------------------
+Il existe deux environnements de gestion des citations :
++ quote pour les citations courtes,
++ quotation pour les citations longues.
+
+Exemple :
+\begin{quote}
+ L'environnement \texttt{quote} n'indente pas ces paragraphes
+ par contre l'espace vertical entre ces derniers est supérieur
+ à celui d'un texte standard.
+
+ La preuve~!
+\end{quote}
+
+\begin{quotation}
+ L'environnement \texttt{quotation} indente la première ligne
+ de ses paragraphes et sépare ses paragraphes d'un espace
+ vertical standard.
+
+ La preuve~!
+
+\end{quotation}
+
+Dans les deux cas les marges droite et gauche sont plus
+importantes que celles d'un texte standard.
+%%%% fin exemple %%%%
+
+# 6.58 # Comment insérer un texte sans que LaTeX le mette en forme ?
+--------------------------------------------------------------------
+L'environnement verbatim permet d'insérer un texte tel quel sans
+que LaTeX ne le traite. Il permet notamment de faire apparaître
+des commandes LaTeX.
+
+Exemple :
+\begin{verbatim}
+ La commande \LaTeX permet d'imprimer le logo LaTeX.
+\end{verbatim}
+%%%% fin exemple %%%%
+
+* La commande \verb?texte? permet de faire la même chose
+localement. Le premier caractère ? permet de marquer le début du
+mode verbatim et le second en marque la fin. Il peut être
+remplacé par n'importe quel autre caractère sauf un espace ou *.
+
+# 6.59 # Comment visualiser des espaces ?
+-----------------------------------------
+* L'environnement verbatim* et la commande \verb* permettent de
+visualiser les espaces insérés dans un texte en les remplaçant
+par un caractère spécial en forme de u.
+
+Exemple :
+Je mange \verb*? ? pomme.
+%%%% fin exemple %%%%
+
+* LaTeX propose la commande \textvisiblespace.
+
+* En TeX, c'est le caractère 32 de la fonte cmtt, qui est
+défini dans le source du TeXBook par :
+\def\]{\leavevmode\hbox{\tt\char`\ }} % visible space
+
+Vous pouvez donc définir:
+\def\vs{\leavevmode\hbox{\tt\char`\ }} % visible space
+et \vs donnera ce fameux caractère.
+
+# 6.60 # Comment insérer du code LaTeX dans un document LaTeX ?
+---------------------------------------------------------------
+* Le package 'example' offre un environnement example qui permet en
+ne tapant qu'une seule fois le code d'avoir côte à côte le code
+LaTeX et son résultat après compilation.
+
+Exemple :
+\begin{example}
+ La commande \LaTeX permet d'appeler le logo LaTeX.
+\end{example}
+%%%% fin exemple %%%%
+
+* La solution la plus classique consiste à faire :
+\hbox{\vtop{\hsize 0.5\hsize le permier texte}\vtop{\hsize
+0.5\hsize{\begin{verbatim} le même texte \end{verbatim}}}}
+
+# 6.61 # Comment écrire du texte en couleurs ?
+----------------------------------------------
+* Voir à ce sujet le Cahier GUTenberg numéro 16 (février 1994,
+entièrement consacré à ce problème) et l'article de M. Goossens
+et M. Jouhet dans Cahier GUTenberg 21 (juin 1995, pages 30-52),
+accessible à l'URL :
+http://www.gutenberg.eu.org/publications/.
+
+* Le package 'color' est disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/. Il permet de coloriser le
+texte ou le fond du document.
+
+Exemple :
+\textcolor{red}{Important}
+%%%% fin exemple %%%%
+
+* pstricks disponible sur ftp://ftp.fdn.org/pub/CTAN/graphics/pstricks/ est un
+ensemble de macros PostScript compatibles avec Plain
+TeX, LaTeX, AmSTeX, and AmS-LaTeX. Il comprend notamment
+des macros pour la colorisation, la gestion des graphiques, le
+dessin de camembert, d'arbres, etc.
+
+* Voir également la question 6.25 : Comment griser le fond
+(background) d'un paragraphe ?
+
+# 6.62 # Comment construire un arbre ?
+--------------------------------------
+* Le package 'qobitree', est disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/qobitree/.
+
+* Le package 'treesvr' est également disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/treesvr/.
+
+Exemple :
+\begin{picture}(100,100)
+\setlength\unitlength{2mm}
+\branchlabels ABC % 012 is the default
+\root(2,10) 0. % root at absolute coordinate (2,10)
+ % its (internally used) label is 0
+ % the space before the 0 obligatory
+\branch2{16} 0:1,2. % node 0 has children 1 and 2
+ % the text "16" is written above it
+ % space optional, :,. obligatory
+\leaf{4}{$u_1$} 1. % node 1 is a leaf
+ % "4" written above, "$u_1$" at right
+\branch2{12} 2:3,7. % branch to node 3 goes up labeled A
+ \tbranch2{9} 3:4,5,6.
+ \leaf{4}{$u_3$}4.
+ \leaf{3}{$u_4$}5.
+ \leaf{2}{$u_5$}6.
+ \leaf{3}{$u_2$} 7.
+\end{picture}
+%%%% fin exemple %%%%
+
+* Le package 'treetex' disponible sur
+ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/trees/tree_tex/ permet de metttre en
+page des arbres sous LaTeX.
+
+* Les packages 'epic', 'eepic', 'ecltree' permettent de créer des
+arbres (les trois packages sont nécessaires pour une
+utilisation avec Latex2e pour garder la compatibilité avec
+Latex2.09).
+
+Exemple :
+\documentstyle[epic,eepic,ecltree]{article}
+\begin{document}
+
+\begin{bundle}{racine}
+\chunk{feuille 1}
+\chunk{feuille 2}
+\drawwith{\dottedline{3}}
+\chunk{feuille 3}
+\drawwith{\drawline}
+\chunk{feuille 4}
+\end{bundle}
+
+\end{document}
+%%%% fin exemple %%%%
+
+# 6.63 # Comment mettre en page un poème ?
+------------------------------------------
+* Il existe l'environnement verse. Il gère les marges, les
+retours à la ligne dans une strophe se font par \\ et les
+strophes sont séparées par des lignes blanches.
+
+Exemple:
+\begin{verse}
+ J'ai un poney gris, \\
+ Qui galope à travers la prairie.
+
+ Grignote, grignote dans ma main, \\
+ La carotte rousse du jardin.
+
+ Mes cousins ont un poney blanc, \\
+ Qui parcourt chemins et champs.
+\end{verse}
+%%%% fin exemple %%%%
+
+* Ci-dessous un exemple de style de JHB Nijhof
+(nijhojhb@aston.ac.uk) :
+
+Exemple :
+\documentstyle[a4,12pt]{article}
+
+\def\testline{\par\noindent\hbox to 0pt{\hss*\hss}\hfill
+\hbox to 0pt{\hss*\hss}\hfill\hbox to 0pt{\hss*\hss}\par}
+\def\centerstar{\par\medskip\noindent\hbox to\hsize%
+{\hss*\hss}\par\medskip}
+
+\newbox\poembox
+\newbox\widebox
+\newdimen\centerx
+\newcount\linecount
+\newdimen\poemleftmargin
+\def\newpoem{\setbox0=\box\poembox \setbox0=\box\widebox
+\linecount=0} % empty boxes
+\newpoem % probably not necessary
+\def\poemline#1{\setbox0=\hbox{\strut #1}%
+ \setbox\poembox=\vbox{\unvbox\poembox\copy0}%
+ \setbox\widebox=\hbox{\unhbox\widebox\copy0}%
+ \advance \linecount 1}
+\def\setpoem{% you'll want a clearpage here
+\centerx=\wd\widebox \divide\centerx\linecount \divide\centerx 2%
+%now centerx is the x of the center of gravity
+\poemleftmargin=0.5\hsize \advance \poemleftmargin-\centerx
+\noindent\kern\poemleftmargin\box\poembox
+\par
+\newpoem}
+
+\begin{document}
+
+\testline % for viewing the margins/ middle
+\poemline{Rozen verwelken}
+\poemline{schepen vergaan}
+\poemline{maar onze liefde}
+\poemline{zal blijven bestaan}
+\setpoem
+
+\centerstar
+
+\poemline{Rozen verwelken}
+\poemline{schepen vergaan}
+\poemline{maar onze liefde zal blijven bestaan}
+\setpoem
+
+\centerstar
+
+\poemline{Rozen verwelken, schepen vergaan}
+\poemline{maar onze liefde zal blijven bestaan}
+\setpoem
+
+\centerstar
+
+\poemline{Rozen verwelken}
+\poemline{\qquad schepen vergaan}
+\poemline{maar onze liefde}
+\poemline{\qquad zal blijven bestaan}
+\setpoem
+
+\centerstar
+
+\end{document}
+%%%% fin exemple %%%%
+
+# 6.64 # Comment aligner des paragraphes ?
+------------------------------------------
+On peut utiliser la commande \parindent.
+
+Exemple :
+{\settowidth{\parindent}
+{Notes~:\ }
+
+\makebox[0pt][r]
+{Notes~:\ }La première note pour dire que ...
+
+La seconde pour préciser que ...
+}
+%%%% fin exemple %%%%
+
+# 6.65 # Comment construire une liste d'éléments ?
+--------------------------------------------------
+Il existe trois environnements de liste par défaut :
++ l'environnement itemize
++ l'environnement description
++ l'environnement enumerate
+
+Exemples :
+\begin{itemize}
+ \item un élément
+ \item un autre élément
+\end{itemize}
+
+\begin{description}
+ \item[Genre] Le genre peut être féminin ou masculin
+ \item[Nombre] Le nombre peut être singulier ou pluriel
+\end{description}
+
+\begin{enumerate}
+ \item premier élément
+ \item deuxième élément
+\end{enumerate}
+%%%% fin exemple %%%%
+
+# 6.66 # Comment faire une note dans une marge ?
+------------------------------------------------
+On peut utiliser la commande \marginpar{note marge}.
+
+Exemple :
+La valeur du paramètre temps est fixée à
+12~minutes\marginpar{AC}. En tenant compte de cette hypothèse
+les résultats obtenus sont les suivants~:
+
+~\ldots
+%%%% fin exemple %%%%
+
+Remarque : Pour inverser les notes dans les marges
+ (droite/gauche) il suffit de mettre dans le
+ préambule : \reversemarginpar.
+
+# 6.67 # Comment faire une page de garde ?
+------------------------------------------
+Les commandes permettant de définir une page de garde sont :
++ \title pour un titre
++ \author pour le ou les auteurs (dans ce dernier cas leurs noms
+sont séparés par la commande \and)
++ \date pour la date
++ \thanks utilisée dans l'une des commandes ci-dessus permet de
+faire référence à une note de bas de page.
+
+La page de garde est ensuite générée par la commande \maketitle
+appelée dans le corps du document (généralement juste après la
+balise \begin{document}).
+
+Exemple :
+\documentclass{report}
+\usepackage{french}
+
+\newlength{\larg}
+\setlength{\larg}{14.5cm}
+
+\title{
+{\rule{\larg}{1mm}}\vspace{7mm}
+\begin{tabular}{p{4cm} r}
+ & {\Huge {\bf {FAQ} \LaTeX{} française}} \\
+ & \\
+ & {\huge Pour débutants et confirmés}
+\end{tabular}\\
+\vspace{2mm}
+{\rule{\larg}{1mm}}
+\vspace{2mm} \\
+\begin{tabular}{p{11cm} r}
+ & {\large \bf Version 2.0} \\
+ & {\large \today}
+\end{tabular}\\
+\vspace{5.5cm}
+}
+\author{\begin{tabular}{p{13.7cm}}
+Marie-Paule Kluth
+\end{tabular}\\
+\hline }
+\date{}
+
+\begin{document}
+\maketitle
+
+Voici mon document.
+
+\end{document}
+%%%% fin exemple %%%%
+
+# 6.68 # Comment utiliser \thanks dans chaque titre de chapitre ?
+-----------------------------------------------------------------
+Pour associer des remerciements dans chaque chapitre d'un thèse,
+par exemple, il faut définir sa propre macro à base de
+\footnote.
+
+Exemple (R. Fairbairns) :
+\documentclass{report}
+\usepackage{french}
+
+\newcommand\thankschapter[2]{%
+ % arg 1 is chapter title
+ % arg 2 is `thanks' text
+ \edef\savefootnote{\thefootnote}
+ \renewcommand\thefootnote{\fnsymbol{footnote}}
+ \chapter[#1]{#1\footnote[1]{#2}}
+ \renewcommand\thefootnote{\arabic{footnote}}
+ \setcounter{footnote}{\savefootnote}
+}
+\begin{document}
+\chapter{Préface.}{\textit{Un grand merci à M. Nigaudon pour
+avoir accepter de préfacer ce livre.\\}}
+
+Ce livre traitant de \LaTeX,~\ldots
+
+\end{document}
+%%%% fin exemple %%%%
+
+# 6.69 # Comment mettre un résumé et un abstract dans un document ?
+-------------------------------------------------------------------
+* Le package 'french' propose les environnements resume et
+abstract.
+
+Exemple (textes sur la même page) :
+\documentclass{article}
+\usepackage{french}
+\pagestyle{empty}
+\begin{document}
+\begin{resume} résumé en français \end{resume}
+ \english
+\begin{abstract} the same in english \end{abstract}
+ \french
+
+ Cet article~\ldots
+\end{document}
+%%%% fin exemple %%%%
+
+Remarque : \resume n'est qu'un alias de \abstract.
+
+Exemple (chaque résumé est sur une page séparée) :
+\begin{english}
+ \begin{abstract}
+ english text
+ \end{abstract}
+\end{english}
+
+\begin{french}
+ \begin{abstract}
+ Texte français
+ \end{abstract}
+\end{french}
+%%%% fin exemple %%%%
+
+* Le package 'babel' peut également être utilisé.
+
+Exemple :
+\usepackage[francais,english]{babel}
+...
+\selectlanguage{francais}
+resume : je parle français
+....
+\selectlanguage{english}
+abstract : I speak english
+....
+%%%% fin exemple %%%%
+
+* Autre solution qui ne permet toutefois pas d'avoir les deux
+textes sur la même page :
+
+%%%% debut macro %%%%
+\renewcommand{\abstractname}{Résumé}
+\begin{abstract} résumé en français \end{abstract}
+\renewcommand{\abstractname}{Abstract}
+\begin{abstract} the same in english \end{abstract}
+%%%% fin macro %%%%
+
+# 6.70 # Comment définir de nouvelles couleurs ?
+------------------------------------------------
+Il existe deux repères pour cela :
++ cyan, magent, yellow, black et la commande :
+\definecolor{nouveau_nom}{cmyk}{w,x,y,z}
+\newcmykcolor{le_nom_de_la_couleur}{w x y z}
+avec w,x,y,z entre 0.0 et 1.0
+
++ red,green, blue et la commande :
+\definecolor{nouveau_nom}{rgb}{a,b,c}
+ou : \newrgbcolor{le_nom_de_la_couleur}{a b c}
+avec a,b,c entre 0.0 et 1.0
+
++ il existe également :
+\newhsbcolor{le_nom_de_la_couleur}{num1 num2 num3}
+qui permet de jouer sur le << hue >>, la saturation et la
+luminosité.
+
+# 6.71 # Comment placer des figures face à face en recto-verso ?
+----------------------------------------------------------------
+Dans un document recto-verso, pour s'assurer qu'une figure
+apparaisse sur la page de gauche et une autre sur la page de
+droite en face, il faut utiliser le package 'dpfloat' disponible
+sur: http://weber.u.washington.edu/~fox/tex/dpfloat.html.
+
+# 6.72 # Quelles sont les différences entre a4paper et letterpaper ?
+--------------------------------------------------------------------
+L'option a4paper exécute :
+ \setlength\paperheight {297mm}
+ \setlength\paperwidth {210mm}
+
+L'option par défaut est letterpaper qui fait
+ \setlength\paperheight {11in}
+ \setlength\paperwidth {8.5in}
+
+Remarque (J. Kanze) : Il faut remarquer que la différence n'est
+ pas énorme : les défauts en mm sont 279x216. En fait,
+ sur le petit test que j'ai fait, les coupures de
+ lignes se trouvaient exactement aux mêmes endroits --
+ en revanche, chaque page contenait bien quelques
+ lignes de plus avec a4paper.
+
+# 6.73 # Comment couper une chaîne de caractères ?
+--------------------------------------------------
+* Pour forcer la coupure d'une chaîne de caractères, il faut
+utiliser la commande \- à l'endroit où la chaîne doit être
+coupée.
+
+Exemple :
+Je décide que le dernier mot de cette ligne soit coupé en deux
+ici:~ do\-cumentation. N'est-ce pas beau~?
+%%%% fin exemple %%%%
+
+* Pour indiquer à LaTeX comment couper certain mots, on peut
+utiliser la commande \hyphenation.
+
+Exemple :
+\hyphenation{do-cu-ment}
+Je décide que le dernier mot de cette ligne soit coupé en deux
+ici:~ documentation. N'est ce pas beau~?
+%%%% fin exemple %%%%
+
+# 6.74 # Comment modifier l'espace entre une figure et sa légende ?
+-------------------------------------------------------------------
+Les deux variables qui définissent respectivement l'espace avant
+une légende et l'espace après sont : \abovecaptionskip et
+\belowcaptionskip.
+
+Exemple de redimensionnement :
+\setlength\abovecaptionskip{0.25ex}
+%%%% fin exemple %%%%
+
+--
+Benjamin Bayart
+bayartb@edgard.fdn.fr