{{tag>tutoriel}} ====== Utiliser NoWeb avec LATEX : guide d'utilisation en une page ====== Norman Ramsey, puis Lee Wittenberg et Carl Gregory ===== Le fichier noweb foo.nw ===== ==== Blocs de documentation ==== En début d'une ligne, @commence un bloc de documentation. Le texte est en LATEX. Pour incorporer des fragments de code, utilisez ''%%[[...]]%%''. **noweave** encapsule automatiquement le fichier entre \documentclass{article} \usepackage{noweb} \begin{document} (...) et (...) \end{document} Pour éviter cette encapsulation, * mettez dans votre source ''%%\documentclass%%'' et ''%%\usepackage%%'' * et utilisez $ noweave -delay ==== Blocs de code ==== En début d'une ligne,<<...nom_du_bloc...>>= commence un bloc de code en n'importe quel langage. Utilisez ''%%<<...>>%%'' pour inclure d'autres blocs de code par leur référence Vous pouvez écrire plusieurs blocs de code avec le même nom, ils seront concaténés. Nommez les blocs : * dans les fonctions, avec des verbes, par exemple, (//copier toutes les lignes de l'intérieur vers l'extérieur, en ajoutant un balisage//). * blocs contenant des déclarations, avec des noms, par exemple, (//prototypes de fonctions privées) ou (définitions de fonctions exportées//). * fragments **racine** de niveau supérieur, d'après les fichiers qu'ils doivent représenter, par exemple, ''%%<>=%%'' ou ''%%<>=%%''. ===== Commandes typiques ===== ^ notangle -L -Rfoo.c foo.nw > foo.c | Extrait le fichier foo.c, avec numéros de lignes | ^ notangle -Rfoo.h foo.nw | cpif foo.h | Extrait le fichier foo.h s’il a changé (sans numéros de lignes). | ^ noweave -filter l2h -index -html foo.nw > foo.html | Crée du HTML en convertissant la documentation LATEX. | ^ noweave -x foo.nw > foo.tex | Crée un document LATEX avec références croisées, sans index. | ^ latex foo; latex foo | Traiter LATEX en un fichier dvi (<< indépendant du périphérique >>) | ^ latex ’\scrollmode \input foo’ | une autre commande LATEX à utiliser dans Makefile. | ^ dvips -o foo.ps foo | Convertit **foo.dvi** en PostScript. | ===== LATEX minimal ===== * **Caractères spéciaux** (à ne pas taper dans du texte, utilisables dans le code) :% \ { } $ & # ^ _ ~**Échappement** pour les caractères spéciaux :\% $\backslash$ \{ \} \$ \& \# \_ * **Une ligne vide** est un nouveau paragraphe. * **Écrivez %%‘‘quotes’’%%** pour obtenir %%“quotes”%% Jamais "quotes". * **Titres** : \title{...} \author{...} \maketitle * **Sections** : \section{...} \subsection{...} \subsubsection{...} * **Polices** : \emph{emphasis} \textbf{bold} \texttt{typewriter} \textit{italics} \textsf{sans serif} \textsc{small caps} * **Listes** : List of items \begin{itemize} \item one \item two \item three \end{itemize} donne : List of items * one * two * three * **Listes numérotées** : List of items \begin{enumerate} \item one \item two \item three \end{itemize} donne : List of items - one - two - three ===== Voir aussi ===== * **(en)** [[https://www.cs.tufts.edu/~nr/noweb/onepage.ps]] ---- //Basé sur << [[https://www.cs.tufts.edu/~nr/noweb/onepage.ps|A One-Page Guide to Using noweb with L A TEX]] >> par Norman Ramsey.//