Mar 042010
 

Listing

Bonjour,

Cette fois ci, je souhaiterais vous présenter le package LaTex Listings. Comme le laisse sous entendre son nom, ce package vous permet d'intégrer des listings de code dans vos documents LaTex.

Pourquoi un package pour intégrer quelques lignes de code dans un document? Pour répondre à cette question, il est nécessaire d'avoir connaissance de tous les services que peut fournir Listings.

Je compte donc ici vous présenter quelques une de ces options.

Intégration de code avec 'coloration' syntaxique

Listings ne vous fournis pas seulement le moyen d'intégrer le contenus d'un fichier de source et l'afficher dans votre document avec une police à pas fixe. Il est capable de reconnaitre le langage et de mettre en relief les mots clef. Moyennant quelques configurations, vous pouvez même ajouter des couleurs, et lui "apprendre" les langages qu'il ne connais pas encore.

Voici par exemple comment intégrer un code C dans un document type :

%Document de type article
\documentclass{article}
 
%On signale que l'on souhaite utiliser listings
\usepackage{listings}
 
%Début du document
\begin{document}
 
%Nous allons utiliser du C :
\lstset{language=C}
 
%Code C dans latex : (notez que le symbole % n'est plus interprété dans cette balise)
\begin{lstlisting}
#include 
 
int main(int argc, char *argv[])
{
  printf("%s", "Hello World);
  return 0;
}
\end{lstlisting}
 
%Lecture depuis un fichier
\lstinputlisting{hello.c}
 
%Fin du document
\end{document}

Notez que les espaces dans les chaines de caractère (C'est à dire les espaces dont la suppression/modification peut affecter le programme obtenu après compilation) sont aussi mit en relief, affin de faciliter la lecture et expliciter leur nécessité.

Bien plus encore

Plus que le simple code, vous pouvez ajouter une numérotation des lignes, modifier la largeur des tabulations de votre code source, ou encore leur substituer des "flèches" affin de rendre la lecture plus simple. Vous pouvez aussi encadrer votre code (avec différents type de bordures)

Voici un petit exemple de numérotation qui commence à 1, toute les 5 lignes (1,6,11, etc...) et où les tabulations mesurent 2 espaces. Le code est encadré et nommé comme une figure.

%Les options (s'appliquent à tout les listings suivant) :
% - numérotation a gauche
% - toute les 5 lignes(à partir de 1 est sous entendu : firstline = 1)
% - cadre simple
\lstset{numbers=left, stepnumber=5, frame=single}
 
%Le listing d'un document c
\lstinputlisting[
  caption={Un hello world},
  label=hello_fig,
  tabsize=2,
  language=C]{hello.c}
 
%Une référence au listing
Blabla, comme le montre le code du listing \ref{hello_fig}, blabla...

Alternatives

Listing n'est pas le seul système d'intégration de code à LaTex disponible. Il existe en effet de très nombreuses alternatives.

On peut par exemple citer texify<langage> qui permet de convertir un fichier de code en un fichier .tex contenant le code avec une mise en relief des mots clefs etc.

Pour plus d'alternatives, consultez la doc de Linstings.

Documentation

Vous pouvez trouver la documentation de Listings à cette adresse, http://www.ctan.org/tex-archive/macros/latex/contrib/listings/listings.pdf ou bien une copie du document à cette sur ce serveur.

Feb 252010
 

Bonsoir,

Aujourd'hui, j'aimerais vous présenter LaTeX(prononcez le X comme la lettre grec "Ki", c'est à dire "La Tek"). LaTeX est un jeu de macro pour TeX.

Concrètement, LaTeX vous permet d'écrire des documents (lettre, articles, livre, etc...) sans avoir à vous soucier de la numérotation des chapitres, de la mise en page, placement des figure, de la réalisation de l'index, du sommaire, etc...

Cette philosophie est celle opposée aux éditeurs WYSIWYG(What You See Is What You Get) comme open office, star office, et bien d'autres. En effet, tout ce que vous "voyez" c'est les macros LaTeX et votre texte. Pour obtenir un document utilisable (.pdf, .dvi, .ps) on compileras donc le script LaTeX avec l'un des compilateur disponible.

LaTeX fournis donc une solution de choix pour la rédaction d'articles un "un peu long" en permettant de se concentrer sur le contenu, et de faire aisément référence à d'autres portions, ajouter des notes en pied de page...

Cela fait environs 3 semaines que je me régale à écrire un nouvelle article(oui oui, je prend mon temps) et le gain de temps est remarquable.

De plus, si vous avez lus certains des précédant articles, vous avez pu constater la présence de formules mathématique.
Sachez que c'est LaTeX qui se charge de la génération de ces images.

Quelques exemples :

Pour écrire l'expression 2*\sqrt[5]{\frac{2}{3}} :

$2*\sqrt[5]{\frac{2}{3}}$

Pour une hiérarchie dans un document :

\part{Titre d'une partie}
\section{Titre d'une section}
\subsection{Titre d'une sous-section}
\subsubsection{Titre d'une sous-sous section}
\paragraph{Titre d'une sous-sous-sous section}

LaTeX n'est pas seul :

LaTeX dispose d'un système de package qui fournissent diverses extensions (par exemple la gestion des url pour générer des pdf), ce qui fournis une certaine extensibilité à LaTeX.

Ajoutez a cela de nombreux utilitaire qui génèrent du code LaTeX pouvant être intégré dans vos documents (on citeras texify pour convertir un code source en une code latex formaté, coloré, etc..).

More and More

Si vous avez un tempérament curieux, je vous encourage à parcourir quelques exemples de code (et plus si affinité) à : http://www.tuteurs.ens.fr/logiciels/latex/