Bonjour,
J'aimerais savoir s'il était possible à partir d'un cours tapé en Latex de générer automatiquement une carte mentale sans la carte mentale soit même avec par exemple TikZ qui peut prendre du temps.
Par exemple, j'aimerais avoir une carte mentale reprenant simplement les titres de paragraphe (\section) ou juste les théorèmes et propriété (\begin{théorème} etc ...)
Merci pour vos réponses.
Cours et carte mentale en Latex
-
- Utilisateur éprouvé
- Messages : 145
- Inscription : dimanche 21 septembre 2008, 10:55
- Statut actuel : Enseignant
-
- Utilisateur chevronné
- Messages : 1490
- Inscription : vendredi 19 décembre 2008, 19:13
- Statut actuel : Enseignant
- Localisation : Bordeaux
Re: Cours et carte mentale en Latex
Bonjour.
Extraire du contenu va sans doute nécessiter de passer par un langage de programmation externe (peut-être que Lua le fait, mais je ne suis pas un expert de ce langage).
En python, voici un exemple:
Test sur le fichier .tex suivant:
Sortie:
Maintenant, il faut exploiter ceci et construire un fichier tex de mapmind: TiKZ a une librairie "mindmap" (voir https://tikz.dev/library-mindmaps par exemple).
Extraire du contenu va sans doute nécessiter de passer par un langage de programmation externe (peut-être que Lua le fait, mais je ne suis pas un expert de ce langage).
En python, voici un exemple:
Code : Tout sélectionner
import re
# Remplacez 'temp.tex' par le nom de votre fichier LaTeX
with open('temp.tex', 'r', encoding='utf-8') as file:
content = file.read()
# Liste des environnements à extraire
environnements = ['théorème', 'propriété']
# Expression régulière pour extraire les titres des sections
pattern_section = r'\\section{([^}]*)}'
# Expression régulière pour extraire le contenu des environnements
# Cette version permet de capturer tout, y compris les lignes multiples et le texte mathématique
pattern_environnements = r'\\begin{(' + '|'.join(environnements) + r')}\s*?(.*?)\\end{\1}'
# Extraction des sections
sections = re.findall(pattern_section, content)
# Extraction des environnements avec re.DOTALL pour inclure les nouvelles lignes et le contenu mathématique
envs = re.findall(pattern_environnements, content, re.DOTALL)
# Affichage des résultats
print("Sections:")
for section in sections:
print(f"- {section}")
print("\nEnvironnements:")
for env in envs:
print(f"- {env[0]}: {env[1].strip()}")
Code : Tout sélectionner
\documentclass{article}
\begin{document}
\section{Section 1}
\subsection{Sous-titre 1}
\begin{théorème}
$A \cap B$
\end{théorème}
blabla
\begin{propriété}
blablabla
\end{propriété}
\subsection{Sous-titre 2}
blabla
\section{Section 2}
\begin{théorème}
blabla
\end{théorème}
\end{document}
Code : Tout sélectionner
Sections:
- Section 1
- Section 2
Environnements:
- théorème: $A \cap B$
- propriété: blablabla
- théorème: blabla
-
- Utilisateur éprouvé
- Messages : 145
- Inscription : dimanche 21 septembre 2008, 10:55
- Statut actuel : Enseignant
Re: Cours et carte mentale en Latex
Merci pour la réponse evarite_G.
Mais ça me parait très compliqué tout ça! Mais je vais quand même essayer.
Mais ça me parait très compliqué tout ça! Mais je vais quand même essayer.
-
- Utilisateur chevronné
- Messages : 2293
- Inscription : samedi 29 décembre 2007, 00:58
Re: Cours et carte mentale en Latex
Bonjour.
Une autre façon de faire serait de passer par les systèmes de
Une autre façon de faire serait de passer par les systèmes de
hook
que les versions récentes de LaTeX propose. On pourrait ainsi agir lors de l'usage de commandes de section et de celles de certains environnements.