Création d’images PNG des schémas dans des documents TeX/LaTex

Logo

Introduction

Dans les publications scientifiques, des schémas sophistiqués sont créés dans des documents Latex avec des packages (circuitikz pour les circuits électriques, chemfig pour les molécules chimiques…).

Pour dupliquer et insérer les schémas dans des pages HTML, il y a une méthode simple pour produire des fichiers images png à partir de documents LaTex contenant les schémas sans avoir à utiliser des outils comme Gimp, Photoshop.

chemfig - Guanine

Comment créer des fichiers images png à partir de schémas dans des documents Latex avec MiKTeX et TexMaker ?

Mode Standalone

Pour un schéma, créer un document Latex en mode standalone.

guanine.tex
\documentclass[margin=5mm]{standalone}
\usepackage{chemfig}
\begin{document}
	\chemfig{*6((-H_2N)=N-*6(-\chembelow{N}{H}-=N?)=?-(=O)-HN-[,,2])}
\end{document}

Les marges peuvent devoir être ajustées avec les options [margin=…] : dans certaines circonstances, un schéma peut être tronqué.

pdftoppm

Compiler le document standalone au format PDF, puis utiliser pdftoppm disponible dans la distribution MiKTeX pour générer le fichier image png à partir du fichier pdf :

% cd D:\projects\Tex\pub

% pdftoppm -png guanine.pdf > guanine.png 

Un format Jpeg est généré avec l’option -jpeg.

Multiples schémas dans un document Latex, tikz

On peut ne pas vouloir stocker un schéma par fichier. Toujours en mode standalone, appliquer la classe tikz au document pour produire un schéma par page dans un document Latex. Chaque page s’ajuste à la taille du schéma.

chemistry.tex
\documentclass[tikz,margin=5mm]{standalone}

\usepackage{chemfig}

\begin{document}

	% Page 1 : guanine  	
  	\chemfig{*6((-H_2N)=N-*6(-\chembelow{N}{H}-=N?)=?-(=O)-HN-[,,2])}
  	
  	% Page 2 : Benzene
  	\chemfig{**6(------)}

	% Page 3 : Esterification	
	\schemestart
	\chemname{\chemfig{R’OH}}{Alcool}
	\+
	\chemname{\chemfig{R-C(-[:-30]OH)=[:30]O}}{Carboxylic Acid}
	\arrow(.mid east--.mid west)
	\chemname{\chemfig{R-C(-[:-30]OR’)=[:30]O}}{Ester}
	\+
	\chemname{\chemfig{H_2O}}{Water}
	\schemestop
	\chemnameinit{}

\end{document}

Dans l’exemple ci-dessus :

  • Page 1 : Molécule de guanine
  • Page 2 : Molécule de benzene
  • Page 3 : Réaction d’esterification

Utiliser les options -f (first page) et -l (last page) pour générer un fichier png pour un schéma :

% cd D:\projects\Tex\pub

% pdftoppm -f 2 -l 2 -png chemistry.pdf > benzene.png
          
% pdftoppm -f 3 -l 3 -png chemistry.pdf > esterification-reaction.png
chemfig - Benzene chemfig - Esterification

TikzPicture

La méthode fonctionne avec de multiples schémas TikzPicture.

% cd D:\projects\Tex\pub
% pdftoppm -f 1 -l 1 -png function.pdf > f-variation.png
% pdftoppm -f 2 -l 2 -png function.pdf > f-graph.png
Math - Function variation Math - Function graph
function.tex
\documentclass[tikz]{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\usepackage{tkz-tab}
\usepackage{amsmath}

\begin{document}

% Page 1 : Function variation
\begin{tikzpicture}
	\tkzTabInit[lgt=3]%
	{$x$ /1,%
	 $f'(x)=-\dfrac{1}{2x^2}$ /1,%
	 $f(x)=\dfrac{1}{x}$ /2}%	
	{$-\infty$ , $0$ , $+\infty$}%
	\tkzTabLine{ 0, -, d, -, 0}
	\tkzTabVar{+/ $0^-$, -D+/ $-\infty$/ $+\infty$, -/ $0^+$}
\end{tikzpicture}

% Page 2 : Graph Function
\begin{tikzpicture}
	\begin{axis}[ xlabel={$x$}, ylabel={$y$}
		,axis lines=middle
		,samples=200, grid, thick
		,domain=-10:10,
		,ymin = -20, ymax = 20
		,xmin = -2.1, xmax = 2.1
		,axis on top=true
		,title={$f(x)=\dfrac{1}{x}$}
	]
	\addplot [domain=-2:-0.001, no marks, blue] {1/x)};
	\addplot [domain=0.001:2,no marks, blue] {1/x)};
	\end{axis}
\end{tikzpicture}

\end{document}