{{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.//