\DocumentMetadata{testphase = {phase-II,sec,toc,graphic,minipage,text}} \documentclass[a4paper]{article} \usepackage[T1]{fontenc} % encoding \renewcommand{\familydefault}{\sfdefault} % sans-serif font \usepackage[nopatch=footnote]{microtype} % better font looking \usepackage[french]{babel} % langages \frenchsetup{SmallCapsFigTabCaptions=false} \usepackage{csquotes} \MakeOuterQuote{"} % Add \extra info to title \makeatletter \providecommand{\extra}[1]{ \apptocmd{\@author}{ \end{tabular} \par\vspace*{0.7em} \begin{tabular}[t]{c} #1}{}{} } \makeatother % Alias \def\matthieu{Matthieu Tonino} \def\anri{Anri Kennel} \def\lsys{L-système} \def\xml{\texttt{XML}} \def\xsl{\texttt{XSL}} \def\xsd{\texttt{XSD}} \def\csv{\texttt{CSV}} \def\svg{\texttt{SVG}} % Métadonnées \def\mytitle{Rapport de projet sur les~\lsys{}s} \def\myauthor{\matthieu~et \anri} \def\mysubject{Format de documents et XML} \def\mylocation{Université Paris Cité} \usepackage[ pdfauthor={\myauthor}, % author metadata pdftitle={\mytitle}, % title metadata pdfsubject={\mysubject}, % subject metadata hidelinks, % clickable links in table of contents ]{hyperref} \title{\mytitle} \author{\matthieu\thanks{\matthieu : 00000000}~ et \anri\thanks{\anri : 22302653}} \extra{\mysubject~$\cdot$ \mylocation} \date{Année universitaire 2023-2024} \begin{document} \maketitle \flushbottom \tableofcontents \clearpage \section[Description]{Description du projet} Le projet a pour but de générer un fichier \svg~en partant d'un \lsys~en utilisant des transformations de \xml~par \xsl. \subsection{Gestion de projet} Nous avons écrit un \texttt{Makefile} pour nous faciliter le développement. \subsubsection*{Une cible qui fait tout} \begin{description} \item[\texttt{make nom=snow n=3}] génère une image \svg~sous \texttt{image.svg} qui correspond au \lsys~"snow" avec trois itérations. \end{description} \subsubsection*{Possibilité de faire une étape à la fois} \begin{description} \item[\texttt{make generation}] génère le fichier \xml~des \lsys{}s. \item[\texttt{make tortue nom=koch5 n=4}] génère le fichier \xml~du \lsys{}~"koch5" avec quatre itérations. \item[\texttt{make traceur}] génère le fichier \xml~du traceur. \item[\texttt{make svg}] génère le fichier \svg. \end{description} \subsubsection*{Utilitaires} \begin{description} \item[\texttt{make saxon}] télécharge Saxon pour la transformation des fichiers \xml~via \xsl. \item[\texttt{make clean}] supprime les fichiers générés. \end{description} \section{Explication des choix} Dans cette partie, nous justifions nos décisions. \subsection{Conception} Nous avons choisi le langage de programmation Python pour réaliser la première partie du projet parce que c'est un langage simple pour ce que nous voulons faire, qu'il est doté d'une librairie qui permet de générer des fichiers \xml~et que nous maitrisons tous les deux. \subsection{Implémentation} % TODO \section{Répartition des tâches} La conversion du fichier \csv~en fichier \xml, ainsi que la transformation du fichier XML ainsi générer en fichier \xml~de la tortue ont étés faits par \anri. La conversion du fichier \xml~de la tortue en fichier \xml~du traceur a été écrite par \matthieu. La conversion du fichier \xml~du traceur en fichier \svg~a été écrite par \anri. Chacun a écrit les fichiers \xsd~correspondant à ses fichiers \xml. \subsection[Chronologie]{Chronologie des tâches} \def\sp{\hspace{8pt}} % petit espace pour l'alignement \begin{description} \item[15 avril] Début de l'écriture du parseur \csv~vers \xml \item[17 avril] Transformation du fichier \csv~vers \xml~achevé \item[26 avril] Écriture du schéma \xml~validant le format du fichier \xml~généré \item[27 avril] Écriture des fichiers \xsl~et \xsd~pour la tortue \item[2 mai\sp] Écriture des fichiers \xsl~et \xsd~pour le traceur \item[4 mai\sp] Écriture des fichiers \xsl~pour la conversion en \svg \item[5 mai\sp] Essaie pour centrer les images \svg. \item[6 mai\sp] Correction de bugs pour \texttt{STORE} et \texttt{RESTORE} \item[6 mai\sp] Gestion de déplacements pour les \svg~et optimisation \item[6 mai\sp] Ajout de quelques \lsys{}s trouvé sur \href{https://onlinetools.com/math/l-system-generator}{onlinetools.com} et \href{https://anvaka.github.io/lsystem/}{anvaka/lsystem} \end{description} \section{Limitations} Dans cette partie nous abordons les limitations de notre projet. % \subsection{Difficultés rencontrées} % TODO - uniquement si on a galéré %\subsubsection*{Bugs} % TODO - uniquement s'il y a des bugs % Problème : quand `n' est grand, on a souvent des problèmes de mémoire %\subsection{Omissions} % Ce qu'il manque % TODO - uniquement s'il y a des omissions \end{document}