\chapter{Formater du texte}

Manipuler du texte, afin de le modifier, de le mettre en forme,
de le présenter de façon harmonieuse, tout le monde l'a déja
fait, avec des outils divers et variés et des résultats parfois
(ou souvent) hasardeux.

\section{fmt et ses copains}
\index{fmt}\index{tr}

Nous allons voir quelques outils de base, simple et efficace,
mais qui ont parfois quelques limitations. Le premier est
\texttt{fmt} qui permet de remettre en forme un texte.

\begin{verbatim}
tth@plop:~/Ecriture/Ordinateur$ cat texte.txt 
Ce morceau de texte n'est pas
bien 
formaté.

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Phasellus nunc sapien, porta id pellentesque at, elementum et felis.
Curabitur condimentum
ante in metus
iaculis quis congue diam commodo.
tth@plop:~/Ecriture/Ordinateur$ fmt texte.txt 
Ce morceau de texte n'est pas bien formaté.

Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Phasellus
nunc sapien, porta id pellentesque at, elementum et felis.  Curabitur
condimentum ante in metus iaculis quis congue diam commodo.
\end{verbatim}

%-------------------------------------------------------------

\section{roff}
\index{roff}

\textbf{Roff} est l'outil qui a permis à quelques hackers légendaire
de justifier auprès de leur hiérarchie le développement d'une machine
de jeu, il est donc légitime d'en parler, non ?

Après quelques minutes d'expérimentation, un premier souci arrive.
Il semble bien que \texttt{groff} ne sache pas lire les fichiers
encodés en \textbf{utf8}\index{utf8}. Il faut donc utiliser
un hack avec \texttt{recode} en prenant bien soin d'utiliser
une redirection vers \texttt{stdin} comme ceci :

\begin{verbatim}
 < $BASENAME.txt recode utf8..latin1 | groff -Tutf8
\end{verbatim}

%-------------------------------------------------------------
\section{yodl}
\index{yodl}

\begin{quote}
Yodl is a package that implements a pre-document language and tools
to process it.  The idea of Yodl is that you write up a document in a
pre-language, then use the tools (e.g. yodl2html) to convert it to some
final document language.  Current converters are for HTML, man, LaTeX SGML
and texinfo, a poor-man's text converter and an experimental xml converter.
\end{quote}

%-------------------------------------------------------------
\section{zoem}
\index{zoem}

\begin{quote}
Zoem is a language for transforming text. It supports the creation of
light-weight mark-up languages as macro packages built on top of zoem.
PUD (Portable Unix Documentation) provides two such mini-languages and
is shipped with zoem.  The PUD languages are for generating manpages and
FAQ documents in both HTML and troff.
\end{quote}

