#+SETUPFILE: https://fniessen.github.io/org-html-themes/setup/theme-bigblow.setup #+STARTUP: org-pretty-entities entitiespretty #+PROPERTY: header-args :comments yes #+OPTIONS: h:3 num:t toc:3 #+TITLE: Exemple de document interactif #+OPTIONS: author:nil date:nil #+OPTIONS: tex:t #+LANGUAGE: fr #+LATEX_HEADER: \usepackage[hmargin=2.5cm,vmargin=1.5cm]{geometry} #+LATEX_COMPILER: pdflatex --shell-escape #+LATEX_HEADER_EXTRA: \usepackage{amsmath} #+LATEX_HEADER_EXTRA: \usepackage{amsthm} #+LATEX_HEADER_EXTRA: \usepackage{amssymb} #+LATEX_HEADER_EXTRA: \BeforeBeginEnvironment{minted}{\begin{mdframed}} #+LATEX_HEADER_EXTRA: \AfterEndEnvironment{minted}{\end{mdframed}} L'utilisation reste très basique, mais cela donne un aperçu de ce qu'on peut faire. Pour changer le style de rendu ~html~, on peut simplement remplacer ~readtheorg~ par ~bigblow~. * Bases D'abord, on peut juste afficher un bloc de code sans l'évaluer #+BEGIN_SRC python :exports code :eval no import math #+END_SRC On peut aussi Afficher le code puis le résultat de son exécution #+BEGIN_SRC bash :exports both :results output :wrap EXAMPLE echo "Hello world" #+END_SRC #+RESULTS: #+BEGIN_EXAMPLE Hello world #+END_EXAMPLE Et évidemment n'afficher que le résultat. Ici, on utilise un script python pour approcher (bien mal) la valeur de $\pi$. #+BEGIN_SRC python :exports results :results output import math sum = 0 for i in range(1,1000): sum += 1./(i*i) pi = math.sqrt(6*sum) print ("pi ~ ", pi) #+END_SRC #+RESULTS: : pi ~ 3.14063710098594 * Équations Il est possible d'écrire des maths normalement dans le texte ($\partial u - \Delta u = f$), mais aussi d'afficher les sources LaTeX et la compilation associée #+BEGIN_SRC latex :exports both :results raw drawer \begin{equation*} \frac{\pi^2}{6}=\sum_{n=1}^{\infty}\frac{1}{n^2} \end{equation*} #+END_SRC #+RESULTS: :RESULTS: \begin{equation*} \frac{\pi^2}{6}=\sum_{n=1}^{\infty}\frac{1}{n^2} \end{equation*} :END: On peut aussi n'afficher que les sources LaTeX #+BEGIN_SRC latex :exports code \begin{equation*} \frac{\pi^2}{6}=\sum_{n=1}^{\infty}\frac{1}{n^2} \end{equation*} #+END_SRC #+RESULTS: #+BEGIN_EXPORT latex \begin{equation*} \frac{\pi^2}{6}=\sum_{n=1}^{\infty}\frac{1}{n^2} \end{equation*} #+END_EXPORT Ou d'utiliser un bloc de sources comme pour d'autres langages et n'afficher que le résultat. #+BEGIN_SRC latex :exports results :results raw drawer Soit $u_0 \in \mathbb{N}^*$, \begin{equation*} \forall n\ge 1\quad u_n= \begin{cases} \frac{u_n}{2},&\mbox{si }\frac{u_n}{2}\in\mathbb{N},\\ 3 u_n+1,&\mbox{sinon.} \end{cases} \end{equation*} #+END_SRC #+RESULTS: :RESULTS: Soit $u_0 \in \mathbb{N}^*$, \begin{equation*} \forall n\ge 1\quad u_n= \begin{cases} \frac{u_n}{2},&\mbox{si }\frac{u_n}{2}\in\mathbb{N},\\ 3 u_n+1,&\mbox{sinon.} \end{cases} \end{equation*} :END: * Python ** Exécution Python On trace une courbe, qu'on stocke dans un fichier, et on écrit les sorties textes #+BEGIN_SRC python :exports both :results output import numpy as np import matplotlib.pyplot as plt x=np.linspace(-5,5,100) print ("déclare une figure") fig = plt.figure() print ("trace la fonction sinus") plt.plot(x,np.sin(x)) filename = 'sin.png' fig.tight_layout() print ("sauve la fonction dans le fichier,", filename) plt.savefig(filename) print ("fin") #+END_SRC #+RESULTS: : déclare une figure : trace la fonction sinus : sauve la fonction dans le fichier, sin.png : fin Et voici la figure obtenue (elle est stockée dans un fichier) [[file:sin.png]] ** Exemple de code python non exécuté #+BEGIN_SRC python :exports both :eval no print("x=",(both)) #+END_SRC #+RESULTS: # Local Variables: # ispell-local-dictionary: "francais" # End: * gnuplot #+BEGIN_SRC gnuplot :exports both :file courbe.png reset set grid plot [0:2] sin(x**x)**2*exp(x) #+END_SRC #+RESULTS: [[file:courbe.png]]