# 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 ``, `>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