Cours et carte mentale en Latex

Tout ce qui concerne les professeurs de mathématiques et plus généralement l'enseignement de cette discipline.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
yodai
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 143
Inscription : dimanche 21 septembre 2008, 10:55
Statut actuel : Enseignant

Cours et carte mentale en Latex

Message non lu par yodai »

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.
evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1490
Inscription : vendredi 19 décembre 2008, 19:13
Statut actuel : Enseignant
Localisation : Bordeaux

Re: Cours et carte mentale en Latex

Message non lu par evariste_G »

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:

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()}")
Test sur le fichier .tex suivant:

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}
Sortie:

Code : Tout sélectionner

Sections:
- Section 1
- Section 2

Environnements:
- théorème: $A \cap B$
- propriété: blablabla
- théorème: blabla
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).
yodai
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 143
Inscription : dimanche 21 septembre 2008, 10:55
Statut actuel : Enseignant

Re: Cours et carte mentale en Latex

Message non lu par yodai »

Merci pour la réponse evarite_G.
Mais ça me parait très compliqué tout ça! Mais je vais quand même essayer.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2287
Inscription : samedi 29 décembre 2007, 00:58

Re: Cours et carte mentale en Latex

Message non lu par projetmbc »

Bonjour.

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.