Conversion des QCM BNS au format auto-multiple-choice
| html2latex.py | ||
| LICENSE | ||
| README.md | ||
QCM HTML to LaTeX Converter
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
pip install beautifulsoup4
Utilisation
Exemples de base
# 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
% Questions générées automatiquement
\element{general}{
\begin{question}{q1}
...
\end{question}
}
Mode document complet
\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
automultiplechoiceminted(nécessitepygments)multicolcsvsimple(pour mode CSV)
Compilation
pdflatex -shell-escape document.tex
License
MIT