
Me gustaría convertir una pieza simple de código LaTeX que es básicamente un texto con algunos gráficos centrados en el medio. Esta es una versión ficticia del código que me gustaría convertir a HTML:
\documentclass{article}
\usepackage{lmodern}
\usepackage{pgfplots}
\usepackage{lipsum}
\pgfplotsset{compat=1.9}
\begin{document}
\lipsum
\begin{center}
\begin{tikzpicture}
\begin{axis}[
ybar stacked,
ymin=0, ymax=35,
width=9cm,
height=6cm,
symbolic x coords={Zimbabwe, France, Italy, Kenya, Germany},
xtick=data,
bar width=15pt,
axis lines*=left,
ytick={0,5,...,35},
xticklabel style={
text height=1.5ex,font=\footnotesize
},
yticklabel style={
font=\footnotesize
},
ymajorgrids,
xlabel={ ... ... ... ... ... , 2004-2009},
xlabel style={yshift=5.8cm,xshift=.9cm},
]
\addplot[fill=gray!50] coordinates {
(Zimbabwe,16)
(France,30)
(Italy,10)
(Kenya,5)
(Germany,20)
};
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
Me cansé de latex4ht
, que usé en el pasado, pero parece que no funciona con el código PGFplot.
Entonces mi pregunta es: ¿cómo se convierten los gráficos PGFplot a html? Gracias por tu ayuda
Respuesta1
Hay muchas maneras de obtener gráficos html y svg con tikz
y tex4ht
. En mi opinión, la mejor manera es utilizar tikz externalization
la biblioteca para realizar la conversión. Con esta biblioteca, pdf
se crea una imagen independiente para cada tikz
imagen y luego se puede usar algún comando externo para convertir esta pdf
imagen a svg
. Tuve un gran éxito al inkscape
hacer este trabajo, con otras aplicaciones, imagemagick
encontré algunos problemas y el resultado no fue correcto. Por lo tanto, debe realizar la instalación inkscape
para que esto funcione.
externalization
Primero, cree el paquete que nos configurará myexternalize.sty
:
\usetikzlibrary{external}
\tikzset{
tex4ht inc/.style={
/pgf/images/include external/.code={%
\includegraphics[]{##1.svg}%
}
}
}
\tikzset{
external/system call/.add={}
{; inkscape -z -f "\image.pdf" -l "\image.svg"
}
}
\@ifpackageloaded{tex4ht}{
\tikzexternalize[mode=only graphics]
\tikzset{tex4ht inc}
}{
\tikzexternalize
}
Este paquete crea un nuevo tikz
estilo, tex4ht inc
que se utilizará con tex4ht
. Con pdflatex
, pdf
el archivo se exporta y inscape
se llama en modo de línea de comando para convertir esta pdf
imagen a svg
.
Ahora necesitamos alguna configuración tex4ht
para poder incluir svg
imágenes, archivo myexternalize.4ht
:
\Configure{graphics*}
{svg}{
{\Configure{Needs}{File: \[email protected]}\Needs{}}
\Picture[\csname a:GraphicsAlt\endcsname]{\csname Gin@base\endcsname.svg \csname a:Gin-dim\endcsname}%
}
ahora puedes incluir myexternalize
el paquete en tu documento:
\documentclass{article}
\usepackage{lmodern}
\usepackage{pgfplots}
\usepackage{lipsum}
\pgfplotsset{compat=1.9}
\usepackage{myexternalize}
....
y luego compilar el documento con
pdflatex -shell-escape documentname
para obtener svg
archivos. -shell-escape
La opción es importante; de lo contrario, la conversión no puede funcionar. ahora puedes compilar el archivo en html:
htlatex documentname
puedes ver el resultadoaquí