Skip to content

SourceCode

Thomas COUCHOUD edited this page Apr 3, 2019 · 3 revisions

Présentation de codes sources

Pour insérer du code dans votre document, vous avez à disposition le package \latexcode{listings}. Ce package est très riche en possibilités, il vous est fortement recommandé de consulter sa documentation si vous souhaitez l'exploiter en profondeur et aller au delà des commandes présentées ci-après. La classe de document polytech nécessite une version récente du package (cf. Mise à jours de package LaTeX).

Commandes simplifiées

Pour simplifier l'utilisation de listings, plusieurs commandes et environnements supplémentaires ont été défini. Pour chacun des langages supportés, trois commandes et un environnement sont disponibles. En notant XXX le nom du langage, on a :

La commande \XXXcode{code}

  • Commande identique à la commande \lstinline{code} mais pré-configurée pour le langage XXX.
  • code est le code à afficher.
  • La commande s'utilise dans le corps d'un texte (ex: un phrase).
  • Les caractères spéciaux tels que \, { et } doivent être préfixés d'un \ ie. \\, \{ et \}.
  • Cette commande est fragile et ne fonctionne pas dans les tableaux. Il faut utiliser le commande \XXXcodeintab dans ce cas là.
  • Exemple :
\latexcode{\\color\{red\}mise en couleur rouge}

La commande \XXXcodeintab!code!

  • Commande identique à la commande \lstinline!code! mais pré-configurée pour le langage XXX.
  • Les parenthèses sont remplacés par un caractère de début et un caractère de fin (choix arbitraire mais identique).
  • Tout ce qui est entre ces deux caractères est le code source à afficher.
  • Elle s'utilise dans le corps d'un texte (ex: un phrase).
  • Les caractères spéciaux tels que \, et } doivent être préfixés d'un \ ie. \\, \{ et \}.
  • Cette commande fonctionne également dans les tableaux.
  • Example :
\latexcodeintab!\\color\{red\}mise en couleur rouge!
\latexcodeintab+\\color\{red\}mise en couleur rouge+

La commande \latexcode{\XXXsourcefile}

  • Commande identique à \lstinputlisting{file} mais pré-configurée pour le langage XXX.
  • Le paramètre est le chemin relatif du fichier dont le code doit être affiché.
  • Exemple :
\latexsourcefile{main.tex}

L'environnement XXXsource

  • Environnement identique à \begin{lstlisting} \end{lstlisting} mais pré-configurée pour le langage XXX.
  • Tout ce qui est défini entre le début et la fin de l'environnement est le code à afficher.
  • Par défaut, les lignes sont numérotés
  • Exemple :
\begin{latexsource}
\textbf{text mis en gras}
\end{latexsource}

Paramètres supplémentaires

Toutes ces commandes et environnements admettent un paramètre optionnel permettant de changer leur comportement. Pour le détail de ce que vous pouvez faire, consultez la documentation de listings sur le CTAN.

\latexcode[basicstyle=\color{red}]{\\color\{red\}mise en couleur rouge}
\latexcodeintab[basicstyle=\color{red}]{\\color\{red\}mise en couleur rouge}
\latexsourcefile[basicstyle=\color{red}]{main.tex}
\begin{latexsource}[basicstyle=\color{red}]
\textbf{text mis en gras}
\end{latexsource}

Styles prédéfinies

Si pour une raison ou une autre vous étiez obligé de revenir à l'utilisation des commandes originales de listings, vous pouvez obtenir le même aspect du résultat en spécifiant l'option :

  • style=polytech@lst@inline pour le code inline (\lstinline) et
  • style=polytech@lst@base pour les autres.

Langages supportés

Les langages pour lesquels les commandes simplifiées ont été définies sont

Langage Préfix des commandes
C c
C++ cpp
Java java
Bash bash
Make make
Javascript javascript
XML xml
SQL sql
PHP php
Python python
HTML html
Scilab scilab
Matlab matlab
LaTeX latex
JSON json
CSV csv

Le package listings supporte de nombreux langages et vous pouvez même définir les règles de mise en forme pour votre propre langage (cf. manuel de listings).

Pour créer les commandes simplifiées pour un langage, il suffit d'utiliser la commande \newsourceformat{cpp}{C++}. Dans cet exemple, cpp est le préfixe utilisé pour les commandes et C++ est le nom du langage tel qu'il est connu par la package listings.

Clone this wiki locally