diff --git a/README.md b/README.md index 3c66e62..c539381 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,116 @@ -# ConvertQCM +# QCM HTML to LaTeX Converter -Conversion des QCM BNS au format auto-multiple-choice \ No newline at end of file +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 ``, `>D-`, `>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 `
` +- **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 `
` 
+- Bonnes réponses marquées par `` ou `>D-`
+- Séparation par `
` 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 \ No newline at end of file