
Eu gostaria de converter um simples pedaço de código LaTeX que é basicamente algum texto com alguns gráficos centralizados entre eles. Esta é uma versão fictícia do código que gostaria de converter para 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}
Cansei do latex4ht
, que usei no passado, mas parece que não funciona com o código PGFplot.
Então minha pergunta é: como você converte gráficos PGFplot em html? Obrigado pela ajuda
Responder1
Há muitas maneiras de obter gráficos HTML e SVG com tikz
e tex4ht
. Na minha opinião, a melhor forma é usar tikz externalization
a biblioteca para fazer a conversão. Com esta biblioteca, pdf
uma imagem independente é criada para cada tikz
imagem, e algum comando externo pode então ser usado para converter esta pdf
imagem em formato svg
. Tive grande sucesso ao inkscape
fazer este trabalho, com outras aplicações, pois imagemagick
encontrei alguns problemas e o resultado não estava correto. Então você precisa instalar inkscape
para que isso funcione.
Primeiro, crie um pacote que definirá externalization
para nós 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 pacote cria um novo tikz
estilo, tex4ht inc
, que será usado com tex4ht
. Com pdflatex
, pdf
o arquivo é exportado e inscape
chamado no modo de linha de comando para converter esta pdf
imagem em svg
.
Agora precisamos de alguma configuração tex4ht
para poder incluir svg
imagens, arquivo 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}%
}
agora você pode incluir myexternalize
o pacote no seu documento:
\documentclass{article}
\usepackage{lmodern}
\usepackage{pgfplots}
\usepackage{lipsum}
\pgfplotsset{compat=1.9}
\usepackage{myexternalize}
....
e então compile o documento com
pdflatex -shell-escape documentname
para obter svg
arquivos. -shell-escape
opção é importante, caso contrário a conversão não funcionará! agora você pode compilar o arquivo para html:
htlatex documentname
você pode ver o resultadoaqui