17 Nov 2010

Généralités (bonnes habitudes et petits trucs)

Florence @ 15:55

La séparation de paragraphes

LaTeX traite le texte un paragraphe à la fois.

Les paragraphes sont séparés par des lignes vides, à l’exclusion de tout autre dispositif, même s’il donne apparemment le même résultat.

On ne fait donc pas:

  • de \par (commande TEX),
  • ni de \\
  • et encore moins de \\~\\!

«\\» doit être exclusivement réservé au changement de ligne dans un tableau, et aux environnements où il a une utilité précise (environnement verse par exemple).

Si vous voulez:

  • « revenir à la ligne»:
    • laissez une ligne vide
    • faites une liste à puces
  • espacer d’avantage les paragraphes entre-eux: modifiez la longueur \parskip
    \setlength{\parskip}{2\baselineskip}
  • augmenter l’espace entre 2 paragraphes pour que le 2e n’ait pas une ligne orpheline à la page suivante (ou le 1er une veuve): ajoutez la macro suivante dans le préambule.
    \widowpenalty=10000 % empeche au maximum la coupure avant la derniere ligne
    \clubpenalty=10000  % empeche au maximum la coupure apres la premiere ligne
    \raggedbottom       % empeche l'etirement des ressorts verticaux

Les ressorts

Les ressorts sont ce qui permet aux document composés avec LaTeX d’être aussi agréables à lire.

  • ressorts infinis (1er ordre) \hfill ou \vfill
  • ressorts un peu moins infinis (2e ordre) \hfil ou \vfil
  • ressorts de poids variable \stretch
  • ressorts ajustables : plus minus
\newcommand{\bulfill}[1]{%
	\leavevmode\leaders \hbox to #1 {\hfil$\bullet$\hfil}\hfill\mbox{}}

\newcommand{\TitreAuDeuxTiers}[1]{%
	\hspace{\stretch{2}}#1\hspace{\stretch{1}}}

\newcommand{\EspaceEtire}[1]{%
	\hspace{3cm plus 1cm minus 1cm}}

La commande \leaders est une commande TeX qui répète le contenu d’une boîte (donnée en 1er argument) sur une longueur (2ème argument) qui peut être un ressort.

Les boîtes

  • on les crée avec \newsavebox
  • on les remplit avec \sbox ou \savebox
  • on les utilise avec \usebox
\newsavebox{\maboite}
\sbox{\maboite}{\strut du texte}
% ou
\savebox{\maboite}[5cm][c]{\strut du texte}
\vrule\usebox{\maboite}\vrule

La commande \sbox est robuste alors que \savebox est fragile (ne supporte pas d’être placée dans une commande mouvante telle qu’une légende, un titre ou une note de bas de page).

Utilités:

  • si on y met une image avec \includegraphics, on peut faire plusieurs \usebox sans que la taille du document final n’augmente;
  • cela permet de mesurer la taille de la boîte et de faire un traitement conditionnel;

Exemple:

\newsavebox{\maboite}
\newlength{\Lmaboite}
\newcommand{\legende}[2]{%
	\sbox{\maboite}{#1}%
	\settowidth{\Lmaboite}{\usebox{\maboite}}%
	\ifdim\Lmaboite<#2
		\par\begin{center}#1\end{center}%
	\else
		\begin{minipage}{#2}#1\end{minipage}%
	\fi}
texte court centré
Les hommes naissent et demeurent libres et égaux en droits. Les distinctions sociales ne peuvent être fondées que sur l’utilité commune. Ce texte long est justifié

Un texte (donné en 1er argument) qui a une longueur inférieure à celle donnée en 2e argument sera centré, alors qu’un texte plus long sera justifié sur cette longueur.

Francisation du document

  • le package babel, avec l’option french, frenchb ou francais traduit les titres, applique les règles de typographie française, et beaucoup d’autres choses encore (lire la doc); babel redéfinit les commandes au moment du \begin{document}, donc si l’on veut modifier ce que babel change déjà, il faut le faire après le \begin{document}, ou dans le préambule en utilisant la commande \AtBeginDocument.
  • le package inputenc avec l’option latin1 (ou applemac) permet de taper directement les accents sans avoir à les composer (\'e);
  • le package fontenc avec l’option T1 permet la césure de mots accentués;
  • parfois le PDF généré est flou, dans ce cas, utiliser au choix le package lmodern ou aeguill.

Questions diverses

  1. Quand mettre les % dans les macros?
    • Après les commandes qui ne se terminent pas par un caractère alphanumérique.
  2. À quoi servent les commandes \makeatletter et \makeatother?
    • À pouvoir utiliser le symbole @ dans les commandes (ce qui est normalement impossible).
  3. Comment surcharger une commande?
    \let\VieilleCommande=\CommandeActuelle % (copie de la commande)
    \renewcommand{\CommandeActuelle}{%
    	\VieilleCommande                    % (appel de la commande normale)
    	\CommandeAAjouter}                  % (appel de la surcharge)
  4. Quelle est la portée d’une commande de type \centering, \bfseries, \small ou \color{red}?
    • Elles ont une portée qui se limite au groupe le plus interne auquel elles appartiennent ({...}, \begin{xxx} ... \end{xxx}). Idem pour les \renewcommand

Laisser une réponse

Vous devez vous identifier pour poster un commentaire. Connectez vous maintenant.