Web Analytics

beampy

⭐ 60 stars French by hchauvet

Beampy Build Status codecov pypi python version pypi licence pypi download pypi beampy version

Le développement de la branche master est actuellement gelé, (seules les corrections de bugs urgents seront poussées), la nouvelle version de beampy est en cours de développement dans la branche dev qui n’est pas encore assez stable pour être utilisée...

Beampy est un outil python pour créer des diaporamas en svg pouvant être affichés avec HTML5 (testé sur Firefox et Chromium) La taille des diapositives est fixe, comme dans un document Latex Beamer.

La présentation Beampy génère un seul fichier html avec tout le contenu intégré.

Voir une présentation de tests Beampy (le source est dans examples/beampy_tests_modules.py*)

Installation :

Depuis le Python Package Index :

pip install beampy-slideshow

See full installation documentation

A quick example :

from beampy import *

doc = document()

with slide(): maketitle('Beampy a tool to make simple presentation', ['H. Chauvet'])

with slide('Beampy test'): text(r'\href{#0}{Go to Title}') text(r'Use LaTeX to render text and $$\sqrt{10}$$', align='center')

with slide('Beampy test with animated layers'): text(r'\href{#0}{Go to Title}')[:] text(r'Use LaTeX to render text and $$\sqrt{10}$$', align='center')[1]

save('./simple_one.html')

#To save in pdf just change the above command to the following #save('./simple_one.pdf')

beampy_presentation.html

Journal des modifications :

0.5.5

(problème de seed #18 pour toute l'histoire), qui crée des parties manquantes du contenu latex dans le svg.

0.5.4

0.5.3

Quelques corrections mineures :

0.5.2

une option pour écrire le svg produit par dvisvgm). "extra_packages". ``python

# 50% of the currentwidth a = rectangle(width='50%', height=10)

# width/height relative to the a element b = rectangle(width=a.width/2+'2cm', height=a.height/'10pt') `

`python

a = rectangle(width='50%', height=10)

b = rectangle(x=a.width+'2cm', y=a.height+5) `

une opération sur la position ou la longueur (c’est-à-dire lorsque vous effectuez une opération sur une largeur ou une hauteur d’élément inconnue, l’élément sera rendu pour obtenir sa taille et permettre l’opération)
  • Ajouter l’opération "zorder" pour les modules (au-dessus/en-dessous/dernier/premier) afin de changer
leur ordre de superposition :

`python

a = rectangle(x='center', y='center', width=50, height=50) b = rectangle(x='center', y='center', width=a.height+100, height=a.height+100, color='red')

# Make b appears below a b.below(a) # equivalent to a.above(b) or a.last() or b.first() `

0.5.1

0.5.0

  • Ajout d’une fonction box pour décorer un groupe
  • Nouvelle méthode expérimentale pour écrire du texte dans la présentation en utilisant un gestionnaire de contexte
`python with text(width=400): """ Any comment inside the context manager will be passed to the text function as input argument. This allows clearer source when writing long texts.

No more need to add an r before to protect the text passed to latex, it's now automatically added. """ `

0.4.9

boîte englobante du module pour les positionner.
  • Ajout de utils.py pour stocker des fonctions qui appellent les modules beampy.
  • Ajout de la fonction bounding_box(module) dans utils.py pour dessiner une boîte englobante avec
des ancres autour des modules Beampy. Ajout également d’une fonction pour dessiner des axes sur la diapositive, draw_axes()

0.4.8

  • Correction partielle du problème #12.
  • Nettoyage de la syntaxe du code.

0.4.7

  • Introduction du mécanisme de calques. Les éléments de la diapositive peuvent être animés par calques permettant un mécanisme similaire à "\only" de beamer.
Les calques sont gérés comme des tranches python sur les modules Beampy.

`python with slide('Test layers'): text('First printed on layer 0') text('Secondly printed on layer 1')[1] text('Printed from layer 2 to 3')[2,3] text('Printed on all layers')[:] text('Printed on layer 4')[4] with group(width=300)[2:]: text('Printed inside group') text('for layers 2 to end') `

0.4.6

`python with group(): text('toto') with group(width=300): text('tata')

with group(width=200): figure('./niceplot.pdf') text('nice legend') `

`python with group(width=200): figure('./niceplot.pdf') text('nice legend') # Figure and text width will be automatically set to 200 px `

  • Le placement relatif peut désormais être effectué sur des éléments positionnés automatiquement
`python t0 = text('toto') text('tata', x=t0.center + center(0), t0.bottom + 0.1) `

La vidéo peut désormais utiliser des liens externes (avec embedded=True*) plutôt que d’être incluse dans le fichier html. La vidéo est chargée depuis le disque (attention au chemin du fichier) lorsque la diapositive est affichée à l’écran.

0.4.5

  • Tous les textes sont prétraités dans un seul fichier latex (Latex est appelé une seule fois : amélioration du temps de compilation)
  • Correction du bug de cache : la vidéo et le svg sont désormais mis en cache correctement

0.4.4

  • Amélioration du cache : un fichier par élément mis en cache (ne pas écrire le cache deux fois !)
  • Svg : ajout des commandes ligne et rectangle pour dessiner facilement des lignes et des rectangles
  • Placement relatif : ajout des raccourcis center(shift), right(shift) et bottom(shift)
pour changer l’ancre de l’élément courant.

`python e1 = text('Somthing', x=0.2, y=0.4) e2 = text('An other thing', x=e1.left + right(0.1), y=e1.center + center(0)) ``

0.4.3

Les figures Matplotlib peuvent désormais être directement passées à figure() ou une liste de figures matplotlib peut être animée avec animatesvg()*

0.4.2

Ajout de la commande svg* pour inclure du svg brut dans la diapositive

0.4.1

aux modules afin de créer leur identifiant de cache

Installation

Voir la page d'installation de la documentation Beampy

--- Tranlated By Open Ai Tx | Last indexed: 2026-06-05 ---