%\documentclass[11pt,a4paper]{article} \documentclass[12pt,a4paper,twoside]{scrartcl} \usepackage{OCI} \author{Nom des auteurs, classe} \title{Titre explicite du rapport d'OCI} \begin{document} \maketitle \section{But} Placez ici le but du rapport. \medskip Par exemple, pour un travail sur un site internet, on pourrait écrire : \smallskip \emph{Notre objectif était de créer un site sur les écureuils avec différentes sections comme un historique, la biologie des écureuils, \dots} \medskip Le but du présent modèle est de permettre une rédaction facilité de rapports en informatique. Le c\oe ur du modèle tourne donc autour de la possibilité d'écrire du code et de le commenter. Pour cela, le package utilisé est \verb|listings|. Ce module de \LaTeX{} est très complet et relativement complexe à utiliser. Sa documentation (en anglais) se trouve dans le répertoire \verb|documentation| du projet sous le nom \verb|Listings.pdf|. Reportez-vous y fréquemment. Pour apprendre à l'utiliser, il faut savoir qu'outre l'appel au module et la configuration préalable réalisée dans le préambule de ce document via \lstinline|\lstset{...}|, la présentation des codes peut se faire en ligne ou hors ligne. En ligne, la commande est \lstinline!\lstinline|...|! et le placement du code se fait à la place des points de suspension. Hors ligne, on utilise l'environnement du listing~\ref{listing:environnement}. \lstinputlisting[float,language={[LaTeX]TeX},caption={Placement d'un code en ligne},label={listing:environnement},numbers=left,numberstyle=\tiny,numbersep=6pt]{moncode2.tex} Finalement, on peut importer du code d'un fichier externe, comme vous pourrez le voir plus loin. Cela peut être utile pour différentes raisons. \section{Réalisation} On place ici différents éléments pour présenter comment le travail fut réalisé. \medskip Par exemple, toujours pour un site internet, on peut présenter la structure des fichiers comme présenté à la figure \ref{figure:dispos}. \begin{figure} \centering \includegraphics[scale=0.5]{images/StructureSite.eps} \caption{La structure de fichier d'un site}\label{figure:dispos} \end{figure} Pour ne pas rendre le modèle trop complexe, le placement des figures côte à côte n'est pas abordé ici. Cependant, s'il vous est nécessaire, consultez le modèle de rapport de travail pratique de physique que j'ai aussi mis à disposition sur le même dépôt de Framagit. Y est détaillé ce type de placement d'images. Vous pouvez aussi consulter le code de la figure \ref{figure:subfigures} qui est reproduit dans le listing \ref{listing:subfigure}, qui présente la manière de mettre deux figures côte à côte (en changeant les mots figure et subfigure respectivement par table et subtable, on peut aussi gérer le placement de tableaux côte à côte). \begin{figure} \centering \begin{subfigure}[b]{0.5\textwidth} \centering \includegraphics[scale=0.6]{images/LatexPS.eps} \caption[T vs m]{\centering Compilation via Postscript\par \small Recommandée mais eps}\label{figure:ps} \end{subfigure} \begin{subfigure}[b]{0.4\textwidth} \centering \includegraphics[scale=0.6]{images/LatexPDF.eps} \caption[T vs m]{\centering Compilation directe\par \small Moins sure mais jpg et png}\label{figure:pdf} \end{subfigure} \caption[subfigures]{\centering Figures côte à côte}\label{figure:subfigures} \end{figure} \begin{lstlisting}[float,language={[LaTeX]TeX},caption={Placer des sous-figures},label={listing:subfigure},numbers=right,numberstyle=\tiny,numbersep=6pt,stepnumber=2] \begin{figure} \centering \begin{subfigure}[b]{0.5\textwidth} \centering \includegraphics[scale=0.4]{images/....eps} \caption[...]{\centering ...}\label{figure:...} \end{subfigure} \begin{subfigure}[b]{0.4\textwidth} \centering \includegraphics[scale=0.4]{images/....eps} \caption[...]{\centering ...}\label{figure:...} \end{subfigure} \caption[subfigures]{\centering Figures côte à côte}\label{figure:subfigures} \end{figure} \end{lstlisting} Sur la figure \ref{figure:subfigures}, on peut voir les deux manières principales de compiler un document \LaTeX{}. Sur la figure \ref{figure:ps}, on voit comment compiler en passant par du Postscript, compilation très puissante et sûre. Elle oblige cependant l'utilisation d'images vectorielles eps exclusivement. Sur la figure \ref{figure:pdf}, on voit une autre manière de compiler directement en PDF. Elle est moins sûre, mais nécessite ou permet l'utilisation d'images bitmap, jpg et png, à l'exclusion de l'eps. \section{Problèmes rencontrés} Placez ici la description des problèmes rencontrés. Par exemple, en python, si on oublie les parenthèses de la commande \lstinline|mainloop()|, alors on a une erreur dans un code comme celui du listing~\ref{listing:turtle}. \begin{lstlisting}[float,language=python,caption={Un code utilisant turtle},label={listing:turtle},numbers=right, numberstyle=\tiny,numbersep=6pt] from turtle import * # import du module turtle forward(100) # avance de 100 mainloop() # boucle en attente \end{lstlisting} Pour mettre un code à l'intérieur d'une ligne de texte, il faut donc utiliser le code particulier \lstinline!\lstinline|mainloop()|!. Pour mettre un code en évidence hors ligne, il faut donc par exemple utiliser le code du listing~\ref{listing:horsligne}. \lstinputlisting[float,language={[LaTeX]TeX},caption={Placement d'un code hors ligne},label={listing:horsligne},numbers=left,numberstyle=\tiny,numbersep=6pt]{moncode1.tex} Mieux, on peut utiliser un fichier extérieur et l'appeler comme présenté dans le listing~\ref{listing:fichierext}, ligne~\ref{listing:nomfichier}. On y voit aussi comment activer la numérotation de lignes. \begin{lstlisting}[float,language={[LaTeX]TeX},caption={Code dans un fichier},label={listing:fichierext},numbers=left, numberstyle=\tiny,numbersep=6pt] \lstinputlisting[float, language=python,caption={Placement d'un code en ligne}, label={listing:horsligne},numbers=left, numberstyle=\tiny,numbersep=6pt] {moncode1.tex}(*@\label{listing:nomfichier}@*) \end{lstlisting} Pour faire référence au numéro d'une ligne présente dans un listing, il faut ajouter à la fin de la ligne le code \lstinline|(*@\label{listing:nomfichier}@*)|. Les caractères d'échappement parenthèse, étoile et arobase permettant d'interpréter le code \LaTeX{} de référencement \lstinline|\label{listing:nomfichier}| qui constitue la référence à la ligne sont définis dans le préambule par \lstinline|\lstset{escapeinside={(*@}{@*)}}|. \section{Analyse} Évidement, on peut aussi spécifier le langage utilisé pour mettre en évidence certains mots clés. Ainsi, en html, on peut écrire le code du listing~\ref{listing:html} qui montre la \og coloration syntaxique \fg{}. \begin{lstlisting}[float,language=HTML5,caption={Un code utilisant html5},label={listing:html},numbers=left, numberstyle=\tiny,numbersep=6pt]