\documentclass[a4paper]{ltxguide}
\usepackage{french}

\title{\leftguillemets{} Trucs \rightguillemets{} en \LaTeX}
\author{Christophe PALLIER}
\date{26 mars 1995}

\begin{document}

\maketitle

\begin{abstract}  
Ce document est un recueil de << trucs >> pour
dompter \LaTeX. On y d\'{e}crit notamment comment r\'{e}aliser quelques
op\'{e}rations qui sont << \'{e}l\'{e}mentaires >> avec d'autres
traitements de textes. L'auteur serait heureux que lui soit
signal\'{e}s les points trop obscurs, et incluera tout << truc >>
int\'{e}ressant qui sera propos\'{e}\footnote{E-mail: {\tt
pallier@psico.psi.ub.es}}.  
\end{abstract}

\tableofcontents
\newpage

\section{Modifier l'indentation d'un paragraphe}

Pour obtenir :

\begin{list}{}{\leftmargin 1cm}
\item Voici deux paragraphes indent\'{e}s de 1 cm vers la droite.

Pour cela, on ne peut pas modifier la marge \verb+\oddsidemargin+ au
milieu d'un document. Il faut utiliser l'environnement \verb+list+.
\end{list}

On a fait :
\begin{verbatim}
\begin{list}{}{\leftmargin 1cm}
\item Voici deux paragraphes indent\'{e}s de 1 cm vers la droite.

Pour cela, on ne peut pas modifier la marge \verb+\oddsidemargin+ au
milieu d'un document. Il faut utiliser l'environnement \verb+list+.
\end{list}
\end{verbatim}

Si l'on veut indenter plusieurs passages, il est fortement
conseill\'{e} de d\'{e}finir un nouvel environement; de plus, d'autres
param\`{e}tres que l'indentation peuvent \^{e}tre r\'{e}gl\'{e}s. Voici par
exemple la d\'{e}finition de l'environnement |quotation| dans la
classe |article.cls|.

\begin{verbatim}
\newenvironment{quotation}
               {\list{}{\listparindent 1.5em%
                        \itemindent    \listparindent
                        \rightmargin   \leftmargin
                        \parsep        \z@ \@plus\p@}%
                \item[]}
               {\endlist}
\end{verbatim}


\section{Encadrer un paragraphe}

Pour obtenir :

\catcode`\|=12

\begin{center}
\begin{tabular}{|c|} 
\hline  
  Here are tree\\
    centered\\
  lines of text.\\ 
\hline
\end{tabular}
\end{center}

\catcode`\|=\active

On a fortement envie (?) de faire :

\begin{verbatim}
\fbox{
    \begin{center} 
       Here are tree\\
          centered\\
       lines of text.\\
    \end{center}}
\end{verbatim}

Mais cela provoque une erreur. Le << truc >> suivant fonctionne :

\begin{verbatim}
\begin{tabular}{|c|} \hline  
Here are tree\\
  centered\\
lines of text.\\
\hline
\end{tabular}
\end{verbatim}

Avec un peu de r\'{e}flexion, cela permet de faire de diagrammes, comme
par exemple :

\catcode`\|=12

\begin{center}
Signal $\longrightarrow$
\begin{tabular}{|c|} \hline  
Analyse\\
Acoustique\\
\hline
\end{tabular}
$\longrightarrow$
\begin{tabular}{|c|} \hline  
Analyse\\
Phon\'{e}tique\\
\hline
\end{tabular}
\end{center}

\catcode`\|=\active

dont le code est :

\begin{verbatim}
Signal 
$\longrightarrow$
          \begin{tabular}{|c|} \hline   
               Analyse\\
              Acoustique\\
          \hline
          \end{tabular}
$\longrightarrow$
          \begin{tabular}{|c|} \hline  
               Analyse\\
              Phon\'{e}tique\\
          \hline
          \end{tabular}
\end{verbatim}

\section{Respecter le formattage ASCII}

Deux commandes parfois tr\`{e}s utiles sont
\verb+\obeylines+ and \verb+\obeyspaces+, ainsi :

{\obeylines\obeyspaces
    Avec ces commandes, \LaTeX\ respecte
    les espaces
       et les retours    chariots de votre 
       fichier     ASCII.

       Facile, non    ?
    Malheureuseument, l'indentation, elle,
    n'est pas respectee.
\par}

Voil\`{a} la source :

\begin{verbatim}
{\obeylines\obeyspaces
    Avec ces commandes, \LaTeX\ respecte
    les espaces
      et les retours    chariots de votre 
      fichier     ASCII.

      Facile, non    ?
        Malheureuseument, l'indentation, elle,
    n'est pas respectee.

\par}
\end{verbatim}


\section{Marges}

L'origine des marges est \`{a} 1 pouce (2.54 cm) du haut et \`{a} 1 pouce
de la gauche de la feuille. Par exemple, pour avoir une marge
gauche de 1 cm :

\begin{verbatim}
\setlength{\oddsidemargin}{-1.54cm}
\end{verbatim}

Cet ordre doit se trouver avant |\begin{document}|, et ne doit
pas changer \`{a} l'int\'{e}rieur du document. 

On ne r\`{e}gle pas directement la marge droite : celle-ci se d\'{e}duit
de la marge gauche et de la largeur du texte. Si le papier
fait 21 cm de large. La marge droite fait :

\begin{verbatim}
21 cm - \textwidth - (\oddsidemargin + 2.54 cm)
\end{verbatim}

Pour les documents devant \^{e}tre imprim\'{e}s en recto-verso, 
|\oddsidemargin| d\'{e}finit la marge gauche des pages impaires
(verso), et |\evensidemargin| d\'{e}finit la marge gauche des pages
paires (recto). Cela permet de laisser une marge de reliure. 

La hauteur de la page est la somme des dimensions
suivantes :

\begin{verbatim}
2.54 cm 
\topmargin          % blanc. Note: peut \^{e}tre n\'{e}gatif
\headheight         % bo\^{\i}te contenant le haut de page
\headsep            % blanc s\'{e}parant le haut de page du texte
\textheight         % texte
\footheight         % bo\^{\i}te contenant le pied de page ???
\end{verbatim}

Chacune de ces dimensions peut \^{e}tre modifi\'{e}e avec la commande
|\setlength|.

\section{Modifier l'interligne}

Vous pouvez jouer avec |\renewcommand{\baselinestrech}{2}|, mais 
attendez-vous \`{a} des horreurs.

Le mieux est de r\'{e}cup\'{e}rer et d'utiliser le
style |doublespace.sty|\footnote{Dans
{\tt ftp.dante.de//pub/tex/macros/latex/misc}}.

Par d\'{e}faut, il installe un espacement double, mais il fournit la
commande |\setstretch| qui permet de modifier \`{a} volont\'{e} celui-ci.

Notez que l'on peut changer sp\'{e}cifiquement l'espacement dans les
tableaux avec la commande :

\begin{verbatim}
\renewcommand{\arraystretch}{1.2}
\end{verbatim}

\section{Modification locale de la taille de caract\`{e}res}

Les ordres de changement de taille de caract\`{e}re (p.ex. |\small|, ne
se comportent pas comme les autres ordres
\LaTeX; ils doivent \emph{suivre}, plut\^{o}t que \emph{pr\'{e}c\'{e}der} le
`\verb+{+' : 

\begin{itemize}
\item Incorrect :  \verb+\large{ c'est large}+ 
\item Correct   :  \verb+{\large c'est large}+ 
\end{itemize}

\bigskip

Autre d\'{e}tail, mais qui a son importance :

\begin{list}{}{\leftmargin 1.5cm \rightmargin 1.5cm} 
\item[] 
{\huge Comparer ce qui arrive si l'\'{e}tendue de |\huge|
\emph{ne comprend pas} la ligne vide de fin de paragraphe,
comme ici...}

{\huge Avec ce qui arrive si l'\'{e}tendue de |\huge| 
\emph{comprend} la ligne vide de fin de paragraphe.

}
\end{list}

Le code est :
\begin{verbatim}
{\huge Comparer ce qui arrive si l'\'{e}tendue de \verb+\huge+
\emph{ne comprend pas} la ligne vide de fin de paragraphe,
comme ici...}

{\huge Avec ce qui arrive si l'\'{e}tendue de \verb+\huge+ 
\emph{comprend} la ligne vide de fin de paragraphe.

}
\end{verbatim}

\bigskip

\textit{Explication :} \LaTeX{} calcule l'interligne quand il
arrive \`{a} la ligne blanche. Il se fonde sur la taille de caract\`{e}re
active quand cette ligne est atteinte.

\section{footnotes dans les tables}

\newenvironment{tab}{\begin{table}[htb]\begin{center}
                     \begin{minipage}{\textwidth}
                     \def\footnoterule{}\begin{center}}
                    {\end{center}\end{minipage}\end{center}
                     \def\footnoterule{\kern-3\p@\hrule width 2truein \kern 2.6\p@}
                     \end{table}}

Pour cr\'{e}er la table \ref{extab}.

\begin{tab}
\caption{Medias del presupuesto de Ingresos y Gastos\label{extab}}


\begin{tabular}{cccc} \hline
 &   \sl Ingresos\footnote{Fuente: Estaditica de los
Presuspuestos generales del Estado} & \sl Gastos & \sl Saldo
presup. \\ \hline 
1874--1880 &        737     & 784        &     -47       \\
1881--1892 &        789     & 844        &     -55       \\
1893--1898 &        820     & 842        &     -22       \\ \hline
\end{tabular}
\end{tab}

Nous avons utilis\'{e} l'environnement :
\begin{verbatim}
\newenvironment{tab}{\begin{table}[htb]\begin{center}
                     \begin{minipage}{\textwidth}
                     \def\footnoterule{}\begin{center}}
                    {\end{center}\end{minipage}\end{center}
                     \def\footnoterule{\kern-3\p@\hrule width 2truein \kern 2.6\p@}
                     \end{table}}
\end{verbatim}

et cod\'{e} :

\begin{verbatim}
\begin{tab}
\caption{Medias del presupuesto de Ingresos y Gastos\label{extab}}

\begin{tabular}{cccc} \hline
 &   \sl Ingresos\footnote{Fuente: Estaditica de los
Presuspuestos generales del Estado} & \sl Gastos & \sl Saldo
presup. \\ \hline 
1874--1880 &        737     & 784        &     -47       \\
1881--1892 &        789     & 844        &     -55       \\
1893--1898 &        820     & 842        &     -22       \\ \hline
\end{tabular}
\end{tab}
\end{verbatim}

Notez l'emploi de |minipage|. 

Notez \'{e}galement la red\'{e}finition de |\footnoterule| pour \'{e}viter que
les notes d'un tableau soit s\'{e}par\'{e}es de celui-ci par une ligne
noire.

\section{Texte invisible}

Il y a un mot cach\'{e} \phantom{dans} cette phrase.

\begin{verbatim}
Il y a un mot cach\'{e} \phantom{dans} cette phrase.
\end{verbatim}

Cela peut servir pour les questionnaires :

Nom :\ \fbox{\phantom{RASTAPOPOULOS}}\hspace{2cm}%
Pr\'{e}nom :\ \fbox{\phantom{JEAN-ETIENNE}}

obtenu avec :
\begin{verbatim}
Nom :\ \fbox{\phantom{RASTAPOPOULOS}}\hspace{2cm}% 
Pr\'{e}nom :\ \fbox{\phantom{JEAN-ETIENNE}}
\end{verbatim}

Encore un exemple :

\begin{center}
\parbox{6cm}{
1\dotfill\fbox{\phantom{M}}
2\dotfill\fbox{\phantom{M}}
}
\end{center}

obtenu par :

\begin{verbatim}
\begin{center}
\parbox{6cm}{
1\dotfill\fbox{\phantom{M}}
2\dotfill\fbox{\phantom{M}}
}
\end{center}
\end{verbatim}

\section{Paragraphes en vis-\`{a}-vis}

Pour r\'{e}aliser :

\noindent
M. Dupont \hfill Paris, le 23 avril 1886. \\
54 bd Raspail \\
75006 Paris 

Vous pouvez faire :

\begin{verbatim}
\noindent
M. Dupont      \hfill Paris, le 23 avril 1886. \\
54 bd Raspail \\
75006 Paris 
\end{verbatim}

|\hfill| est l'ordre << magique >>, sur lequel vous apprendrez
plus dans \textit{\LaTeXbook}, p.96.

On peut vouloir que le paragraphe de droite soit justifi\'{e},
comme par exemple, dans un CV :

\newcommand{\sect}[1]{\vspace*{.8cm}\noindent{\large\textsl{#1}\par}\vspace*{2pt}\hrule\vspace*{.5cm}}

\newlength{\tempdim}
\settowidth{\tempdim}{\bf 1990--1995}
\addtolength{\tempdim}{2\tabcolsep}
\setlength{\tempdim}{-\tempdim}
\addtolength{\tempdim}{\textwidth}
\renewcommand{\arraystretch}{1.5}


\sect{Formation :}

\noindent
\begin{tabular*}{\textwidth}{@{}r@{\extracolsep{\fill}}p{\tempdim}@{}}
\bf 1990--1995 &  Ing\'{e}nieur en chef chez Ast\'{e}rix et Compagnie :
un \'{e}l\'{e}phant, \c{c}a trompe \'{e}normement. 

A l'aise dans ses baskets \\
\bf 1988--1990 & Hello 
\end{tabular*}

\bigskip

Ce n'est pas si simple \`{a} r\'{e}aliser !

La difficult\'{e} est de faire en sorte que les paragraphes situ\'{e}s en
face de chaque date s'\'{e}tendent sur toute la largeur de la page.

Nous proposons trois solutions. La premi\`{e}re, peut-\^{e}tre la
plus simple, est :

\begin{verbatim}
\newcommand{\sect}[1]{\vspace*{.8cm}\noindent%
       {\large\textsl{#1}\par}\vspace*{2pt}\hrule\vspace*{.5cm}}

\newlength{\tempdim}
\settowidth{\tempdim}{\bf 1990--1995}
\setlength{\tempdim}{-\tempdim}
\addtolength{\tempdim}{\textwidth}

\sect{Formation :}
\noindent{\bf 1990--1995\ \ }\parbox[t]{\tempdim}{ 
                   Ing\'{e}nieur en chef chez Ast\'{e}rix et Compagnie :
                   un \'{e}lephant, \c{c}a trompe \'{e}normement. 

                   A l'aise dans ses baskets.}

\noindent{\bf 1988--1990\ \ }\parbox[t]{\tempdim}{
                   Hello}
\end{verbatim}

Cette technique pr\'{e}sente un probl\`{e}me si le contenu de la colonne
<< dates >> est de longueur variable. Une solution plus \'{e}volu\'{e}e
emploie un tableau s'\'{e}tendant sur toute la largeur de la page :

\begin{verbatim}
\newlength{\tempdim}
\settowidth{\tempdim}{\bf 1990--1995}
\addtolength{\tempdim}{2\tabcolsep}
\setlength{\tempdim}{-\tempdim}
\addtolength{\tempdim}{\textwidth}
\renewcommand{\arraystretch}{1.5}

\sect{Formation :}
\noindent
\begin{tabular*}{\textwidth}{@{}r@{\extracolsep{\fill}}p{\tempdim}@{}}
\bf 1990--1995 &  Ing\'{e}nieur en chef chez Ast\'{e}rix et Compagnie :
                  un \'{e}l\'{e}phant, \c{c}a trompe \'{e}normement. 

                  A l'aise dans ses baskets \\
\bf 1988--1990 & Hello 
\end{tabular*}
\end{verbatim}

Finalement, on peut r\'{e}soudre le m\^{e}me probl\`{e}me en modifiant minimalement
l'environnement |description| (fournit dans |article.cls|):

\begin{verbatim}
\newlength{\tempdim}
\settowidth{\tempdim}{\bf 1990--1995}
\addtolength{\tempdim}{\labelsep}
\newenvironment{descript}
               {\list{}{\labelwidth 0pt
                        \setlength{\leftmargin}{\tempdim}
                        \itemindent-\leftmargin
                        \let\makelabel\descriptlabel}}
               {\endlist}
\newcommand{\descriptlabel}[1]{\makebox[\tempdim][r]{\normalfont\bfseries #1}}

\begin{descript}
\item[1990--1995]  Ing\'{e}nieur en chef chez Ast\'{e}rix et Compagnie :
                   un \'{e}lephant, \c{c}a trompe \'{e}normement. 

                   A l'aise dans ses baskets.

\item[1988--1990]  Hello.
\end{descript}
\end{verbatim}

Cette derni\`{e}re solution est sans doute la plus \'{e}l\'{e}gante, du moins
une fois l'environnement d\'{e}fini.




\section{Modifier le style des titres de chapitres, sections...}


\textit{Num\'{e}rotation :} Le compteur |secnumdepth| indique le
plus bas niveau de section num\'{e}rot\'{e}. Par exemple :
\begin{verbatim}
\setcounter{secnumdepth}{0}
\end{verbatim}

supprime tous les num\'{e}ros de chapitre, de section...etc

Pour changer l'apparence du compteur, par exemple utiliser des
lettres plut\^{o}t que des chiffres pour les sections :
\begin{verbatim}
\renewcommand{\thesection}{\Alph{section}}
\end{verbatim}

\bigskip
\textit{Style de caract\`{e}res :} 

Si vous n'aimez pas le style des titres de section propos\'{e}s par
d\'{e}faut, vous pouvez les red\'{e}finir. Pour cela, il faut cr\'{e}er votre
propre \emph{classe} de document.

Par exemple, pour cr\'{e}er une classe d\'{e}riv\'{e}e de |article|,
cr\'{e}ez le fichier |myarticl.cls|, contenant :

\begin{verbatim}
\ProvidesClass{myarticl}
\LoadClass{article}
\newcommand{\section}{\@startsection {section}{1}{\z@}%
                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
                                   {2.3ex \@plus.2ex}%
                                   {\reset@font\Large\bfseries}}
%ceci est recopi\'{e} tel quel \`{a} partir de article.cls
\end{verbatim}

Votre document principal devra appeler |\documentclass{myarticl}|.

Jusqu'ici rien de modifi\'{e} par rapport \`{a} |article|. Si vous
d\'{e}sirez, par exemple, que les titres de section soient
\emph{larges, centr\'{e}s} et en \emph{majuscules}, remplacez la ligne:
\begin{verbatim}
                                   {\reset@font\Large\bfseries}}
\end{verbatim}
par
\begin{verbatim}
                                   {\reset@font\large\scshape\centering}}
\end{verbatim}

De mani\`{e}re g\'{e}n\'{e}rale, vous pouvez ainsi recopier \`{a} partir de la classe
d'origine les d\'{e}finitions que vous allez modifier. Pour plus de d\'{e}tails
sur la cr\'{e}ation des classes, lisez \textit{\clsguide} (fourni avec
\LaTeXe{} dans |clsguide.tex|).


\section{C\'{e}sures (Coupure des mots)}

\subsection{Comment les emp\^{e}cher}

Quelquefois, il est n\'{e}cessaire d'emp\^{e}cher
\LaTeX{} de couper les mots dans un document (par exemple dans
les manuscripts envoy\'{e}s \`{a} certaines maisons d'\'{e}dition).

Pour cela, il faut ajouter |\hyphenpenalty=10000| dans le pr\'{e}ambule
(c'est \`{a} dire avant |\begin{document}|)

Cela entra\^{\i}nera probablement beaucoup de messages << Overfull
hbox >>, qui signifient que \LaTeX{} s'est av\'{e}r\'{e} incapable de
trouver un bon d\'{e}coupage des lignes. Face \`{a} ce probl\`{e}me, deux
solutions sont envisageables :
\begin{order}
\item supprimer la justification \`{a} droite en \'{e}crivant
          |\raggedright| juste apr\`{e}s le d\'{e}but du document.
\item jouer sur les param\`{e}tres  |\tolerance|
          et |\emergencystretch|\footnote{Voir le chapitre 14 du
          \TeX Book de Knuth, pour plus de d\'{e}tails.}.
\end{order}

Par exemple, pour supprimer les coupures, \'{e}crivez dans le
pr\'{e}ambule :

\begin{verbatim}
\tolerance=1000
\hyphenpenalty=10000
\emergencystretch=1in
\end{verbatim}

\subsection{\`A propos des coupures fran\c{c}aises}

La version standard de \LaTeX{} ne comprend que les motifs de
c\'{e}sure de l'anglais. Pour utiliser le fran\c{c}ais, il faut que le
format inclu les motifs fran\c{c}ais. 

Pour v\'{e}rifier que votre version de \LaTeX{} sait couper les mots
fran\c{c}ais, essayez:

\begin{verbatim}
\showhyphens{\'{e}l\'{e}phant}
\end{verbatim}

dans un document incluant |\usepackage{french}|.

\showhyphens{\'{e}l\'{e}phant}

Pendant la compilation avec latex, vous devriez voir appara\^{\i}tre
un message d'erreur affichant << \verb+\'{e}l\'{e}-phant+ >>. Si tel
n'est pas le cas, revoyez l'installation des patrons de coupures
fran\c{c}ais (cf, par exemple, les notes d'installation du style
|french.sty|).



\section{Styles utiles}

|endnotes.sty| : rejette les notes en fin de document. On peut
\'{e}galement facilement les rejetter en fin de section ou de
chapitre. 

|endfloat.sty| : rejette les figures et tables en fin de
document.

|theapa.sty| \& |theapa.bst| : fournit un style de citation
plus correct dans les sciences humaines.


\end{document}
