
Ich möchte einen einfachen LaTeX-Code konvertieren, der im Wesentlichen aus Text mit einigen zentrierten Grafiken dazwischen besteht. Dies ist eine Dummy-Version des Codes, den ich in HTML konvertieren möchte:
\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}
Ich habe es mit versucht latex4ht
, das ich in der Vergangenheit verwendet habe, aber es scheint, dass es mit dem PGFplot-Code nicht funktioniert.
Meine Frage ist also: Wie konvertiert man PGFplot-Diagramme in HTML? Vielen Dank für Ihre Hilfe
Antwort1
Es gibt viele Möglichkeiten, HTML- und SVG-Grafiken mit tikz
und zu erhalten tex4ht
. Meiner Meinung nach ist die beste Möglichkeit, tikz externalization
die Konvertierung mithilfe einer Bibliothek durchzuführen. Mit dieser Bibliothek pdf
wird für jedes Bild ein eigenständiges Bild erstellt tikz
, und ein externer Befehl kann dann verwendet werden, um dieses pdf
Bild in zu konvertieren svg
. Ich hatte großen Erfolg bei inkscape
dieser Aufgabe, mit anderen Anwendungen imagemagick
habe ich beispielsweise einige Probleme festgestellt und das Ergebnis war nicht korrekt. Sie müssen es also installieren, inkscape
damit es funktioniert.
Erstellen Sie zunächst ein Paket, das externalization
für uns Folgendes festlegt 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
}
Dieses Paket erstellt den neuen tikz
Stil , tex4ht inc
der mit verwendet wird tex4ht
. Mit pdflatex
wird pdf
die Datei exportiert und inscape
im Befehlszeilenmodus aufgerufen, um dieses pdf
Bild in zu konvertieren svg
.
Nun benötigen wir noch einige Konfigurationen , um Bilder und Dateien tex4ht
einbinden zu können :svg
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}%
}
Jetzt können Sie myexternalize
Pakete in Ihr Dokument einschließen:
\documentclass{article}
\usepackage{lmodern}
\usepackage{pgfplots}
\usepackage{lipsum}
\pgfplotsset{compat=1.9}
\usepackage{myexternalize}
....
und kompilieren Sie dann das Dokument mit
pdflatex -shell-escape documentname
um Dateien abzurufen svg
. -shell-escape
Diese Option ist wichtig, sonst funktioniert die Konvertierung nicht! Jetzt können Sie die Datei in HTML kompilieren:
htlatex documentname
Sie können das Ergebnis sehenHier