Actualiser README.md

This commit is contained in:
lprik 2025-08-20 08:12:37 +00:00
parent 930c7c8185
commit a4302943a6

117
README.md
View file

@ -1,3 +1,116 @@
# ConvertQCM
# QCM HTML to LaTeX Converter
Conversion des QCM BNS au format auto-multiple-choice
Convertisseur Python pour transformer des QCM HTML vers le format LaTeX compatible avec Auto Multiple Choice (AMC). Gère intelligemment le code Python avec coloration syntaxique via `minted`.
## Fonctionnalités principales
- **Conversion HTML → LaTeX AMC** avec gestion complète du code Python
- **Extraction automatique** du code dans des fichiers séparés avec `\inputminted`
- **Layouts intelligents** : horizontal, vertical ou multicol selon la complexité
- **Détection robuste** des bonnes réponses (support `<span class="ok">`, `>D-`, `&gt;D-`)
- **Formatage automatique** du code avec sauts de ligne à 60 caractères
- **Échappement LaTeX** complet des caractères spéciaux (%, &, $, etc.)
- **Séparation automatique** des questions multiples sans balises `<hr>`
- **Documents complets** prêts à compiler avec en-têtes AMC
## Installation
```bash
pip install beautifulsoup4
```
## Utilisation
### Exemples de base
```bash
# Conversion simple (questions seules)
python qcm_converter.py input.html
# Document LaTeX complet
python qcm_converter.py input.html -f
# Avec optimisations espace
python qcm_converter.py input.html -f --multicol --multicol-columns 4
# Mode CSV pour copies multiples
python qcm_converter.py input.html -f --csv
# Groupe personnalisé avec debug
python qcm_converter.py input.html -f -g chapitre1 --debug
```
### Options disponibles
| Option | Description | Défaut |
|--------|-------------|--------|
| `-f, --full-document` | Document LaTeX complet | Questions seules |
| `-o, --output` | Fichier de sortie | `qcm.tex` |
| `-c, --codes-dir` | Répertoire des fichiers Python | `codes/` |
| `-g, --element-group` | Groupe d'éléments AMC | `general` |
| `--csv` | Mode CSV (nécessite `liste.csv`) | Mode simple |
| `-d, --debug` | Mode debug détaillé | Désactivé |
### Options de mise en page
| Option | Description | Défaut |
|--------|-------------|--------|
| `--multicol` | Active multicol pour réponses courtes | Désactivé |
| `--multicol-columns N` | Nombre de colonnes multicol | `2` |
| `--layout-threshold N` | Seuil pour layout horizontal | `50` |
| `--force-horizontal` | Force layout horizontal | Auto |
| `--force-vertical` | Force layout vertical | Auto |
## Structure de sortie
### Mode questions seules
```latex
% Questions générées automatiquement
\element{general}{
\begin{question}{q1}
...
\end{question}
}
```
### Mode document complet
```latex
\documentclass[12pt,a4paper]{article}
\usepackage[francais,bloc]{automultiplechoice}
\usepackage{minted}
% ... en-têtes AMC complets
\element{general}{
\begin{question}{q1}
...
\end{question}
}
\sujet
\end{document}
```
## Formats d'entrée supportés
- QCM HTML avec questions numérotées (`Q1`, `Q2`, etc.)
- Code Python dans `<pre><code class="python">`
- Bonnes réponses marquées par `<span class="ok">` ou `>D-`
- Séparation par `<hr>` ou détection automatique
## Dépendances LaTeX
- `automultiplechoice`
- `minted` (nécessite `pygments`)
- `multicol`
- `csvsimple` (pour mode CSV)
## Compilation
```bash
pdflatex -shell-escape document.tex
```
## License
MIT