Actualiser README.md
This commit is contained in:
parent
930c7c8185
commit
a4302943a6
1 changed files with 115 additions and 2 deletions
117
README.md
117
README.md
|
|
@ -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-`, `>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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue