Convertir équations en images

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux membres 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.
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1034
Inscription : jeudi 25 novembre 2010, 22:10

[Résolu] Convertir équations en images

Message non lu par marco56 »

Bonjour,
j'ai dans l'idée un de ces jours de créer des cartes mentales (heuristiques) et pour cela, j'aurai besoin d'avoir des images, png si possible, des équations.
Pour l'instant, j'ai plusieurs options qui fonctionnent mais je pense qu'il y a plus simple.
- un fichier qui me crée des images via une compilmation shell-escape (je n'aime pas trop)
- un fichier standalone qui me crée des équations (une par page) :

Code : Tout sélectionner

\documentclass[multi={mymath},border=1pt]{standalone}
\newenvironment{mymath}{$\displaystyle}{$}
\usepackage{amsmath}

\begin{document}

\begin{mymath}
\frac{\frac{dy}{dt}}{2}
\end{mymath}

\begin{mymath}
a^2 + b^2 = 5 y^2
\end{mymath}

\begin{mymath}
y = \dfrac{dz}{dt} + 5 \, \log (x^2) + \exp \left( - \dfrac{t}{\tau} \right) \, \cos \left[ \omega \, t + \varphi\right]
\end{mymath}

\end{document}
ou bien :

Code : Tout sélectionner

\documentclass[[multi={equation*},border=1pt,12pt]{standalone}
\usepackage[active,tightpage]{preview}
\usepackage{amsmath}

\PreviewBorder=12pt\relax

\begin{document}

\preview
\begin{equation*}
\dfrac{y}{2}
\end{equation*}
\endpreview

\preview
\begin{equation*}
a^2 + b^2 = y^2
\end{equation*}
\endpreview

\preview
\begin{equation*}
y = \dfrac{dz}{dt} + 5 \, \log (x^2) + \exp \left( - \dfrac{t}{\tau} \right) \, \cos \left[ \omega \, t + \varphi\right]
\end{equation*}
\endpreview

\end{document}
Je préfère la deuxième solution mais mes équations prennent toute la largeur, ce qui est ennuyeux.
Ensuite, je convertis les pages avec un programme python (3 possibilités) :

Code : Tout sélectionner

# nom_image_avec_ext = "eq-to-png2.pdf"
nom_image_avec_ext = "eq-to-png.pdf"

nom_image_sans_ext = nom_image_avec_ext.split(".")[0]

import subprocess
cmd = 'convert -density 300 -quality 90 eq-to-png.pdf output.png'
subprocess.call(cmd, shell=True)


from wand.image import Image

with Image(filename=nom_image_avec_ext,resolution=200) as source:
    images=source.sequence
    pages=len(images)
    for i in range(pages):
        Image(images[i]).save(filename=str(i)+".png")


from pdf2image import convert_from_path
images = convert_from_path(nom_image_avec_ext)
for i in range(len(images)):
    # images[i].save(nom_image_sans_ext+"_"+str(i+1)+".jpg","JPEG")
    images[i].save(nom_image_sans_ext+"_"+str(i+1)+".png","PNG")

print("{} images crées".format(i+1))
L'utilisation de convert ou de wand.image me met un damier, ce qui n'est guère satisfaisant, donc je préfère pour l'instant pdf2image.

Voilà, c'est un peu lourd je trouve et j'imagine qu'il y a plus simple.
Je suis sous Ubuntu et je ne veux pas utiliser d'utilitaire en ligne ni convertir image par image.
Bonne fin de semaine.
Dernière modification par marco56 le mercredi 17 novembre 2021, 17:15, modifié 1 fois.
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1034
Inscription : jeudi 25 novembre 2010, 22:10

Re: Convertir équations en images

Message non lu par marco56 »

Bon, je me réponds à moi-même, je crois que j'ai trouvé une solution très convenable :

Code : Tout sélectionner

\documentclass[border=5pt, multi={eq},convert={size=650x650,outext=.png}]{standalone}
\usepackage{amsmath}

\newenvironment{eq}{$\displaystyle}{$}
\begin{document}
	
\begin{eq}
p(x) = \sum_{i=0}^n a_ix^i, \quad q(x) = \sum_{j=0}^m b_ix^j, \quad m \ge n
\end{eq}

\begin{eq}
y= \dfrac{dz}{dt} + 5 \, \log (x^2) + \exp \left( - \dfrac{t}{\tau} \right) \, \cos \left[ \omega \, t + \varphi\right]
\end{eq}
\end{document}
Compilé normalement, j'obtiens une équation par page, à la bonne largeur.
Compilé en shell-escape, j'ai les équations qui sont converties en png.
Le fait de pouvoir compiler d'abord sans shell-escape est plus rassurant.
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1034
Inscription : jeudi 25 novembre 2010, 22:10

Re: Convertir équations en images

Message non lu par marco56 »

Je viens par ailleurs de voir que le logiciel Freeplane accepte les formules mathématiques LaTeX...