
Ich habe eine Datei und möchte abwechselnd druckbare PDF-Dateien über xelatex
und HTML-Seiten über erstellen htlatex
. Standardmäßig htlatex
werden nur sehr hässliche PNG-Gleichungen mit niedriger Auflösung erstellt. Ich möchte stattdessen SVG.
Ich tuenichtIch möchte MathJaX verwenden. Ich möchte, dass meine Datei ohne JavaScript funktioniert, und ich möchte nicht, dass Benutzer jedes Mal das komplexe TeX rendern müssen.
Ich bin den Online-Ratschlägen gefolgt und habe dies in c.cfg
... eingefügt.
\Preamble{ext=htm,charset="utf-8",p-width,pic-align}
\Configure{Picture}{.svg}
\makeatletter
\Configure{graphics*}
{svg}
{
{\Configure{Needs}{File: \[email protected]}\Needs{}}
\Picture[\csname a:GraphicsAlt\endcsname]{\csname Gin@base\endcsname.svg
\csname a:Gin-dim\endcsname}
}
\begin{document}
\EndPreamble
htlatex
Bin über ... gelaufen htlatex myfile "c"
und habe Folgendes bekommen: pstoedit: Unsupported output format svg
.
Hmm, was ist hier passiert?Ist mein System falsch konfiguriert, wie dieser Debian-Bug-Reporter dachtepstoedit
? Nein. Vielleicht war die SVG-Konvertierung einmal freie Software, abernicht länger.
SVG ist ein Shareware-Plugin von pstoedit
und es gibt keine Binärdatei für mein Betriebssystem, FreeBSD.
htlatex
Wie kann ich SVG-Mathematik und eigentlich alles andere in SVG zwischen einigen Befehlen mit oder ohne markieren pstoedit
?
Ich habe festgestellt, dass htlatex
es intern funktioniert, indem zuerst eine EPS-Datei generiert wird, z. B. zztest.eps
. Dann versucht es pstoedit -f svg zztest.eps test0x.svg
. Also dachte ich, ich probiere einfach mal einen anderen Konverter aus, aber andere Konverter, wie uniconvertor
und inkscape -z
, erkennen die Magie von LaTeX nicht richtig und legen die EPS auf eine riesige Leinwand (siehe unten). Außerdem ist es umständlich, jedes Mal den anderen Konverter ausführen zu müssen, es sollte eine Möglichkeit geben, anzugeben, welcher Konverter verwendet werden soll.
Das Bild sollte wie die Ausgabe von default aussehen htlatex
, also wie ein SVG.
Antwort1
Wir sollten es wirklich pstoedit
durch etwas Besseres ersetzen. Tatsächlich ist der Prozess, bei dem wir DVI
in PostScript
und dann in konvertieren SVG
, heute nicht mehr wirklich notwendig, da es heutzutage direkte DVI
Konverter SVG
gibt.
Sie können die Befehle zur Bildkonvertierung in tex4ht.env
der Datei ändern, aber dieser Vorgang ist nicht ganz einfach. Stattdessen würde ich verwenden make4ht
, was ein moderner Ersatz für htlatex
mit Unterstützung für Build-Dateien ist. Sie können in diesen Build-Dateien benutzerdefinierte Befehle zur Bildkonvertierung angeben.
Speichern Sie den folgenden Code als test.mk4
:
Make:image("svg$","dvisvgm -n -p ${page} -c 1.4,1.4 -s ${source} > ${output}")
Die Build-Datei ist ein Lua-Skript, Make:image
der Befehl stellt einen Befehl zur Bildkonvertierung bereit. Dieser Befehl hat zwei Argumente, das erste ist das konfigurierte Bildformat (es ist ein regulärer Ausdruck, also $
am Ende), das zweite ist eine Vorlage für den Konvertierungsbefehl. Es gibt drei wichtige Parameter, ${source}
nämlich den Namen der DVI
Datei, ${page}
die Seitenzahl des konvertierten Bildes und ${output}
den Namen des generierten Bildes.
Sie können Ihr Dokument mit dem Befehl kompilieren
make4ht -c c.cfg test.tex
Die Build-Datei wird automatisch verwendet, wenn sie als TeX-Eingabedatei mit der .mk4
Erweiterung benannt ist.
Letzter Kommentar zur Qualität der Mathematik: Am besten wäre es, format zu verwenden mathml
, da Bilder neben der Auflösung auch andere Probleme haben (Zugänglichkeit, fehlende Übereinstimmung zwischen Schriftgrößen, sie passen nicht zur Grundlinie und wahrscheinlich noch viele andere). Das Problem mathml
ist die schlechte Browserunterstützung, die abgesehen von Firefox praktisch nicht vorhanden ist. Mathjax bietet allen Browsern gute Unterstützung dafür, aber ich verstehe vollkommen, dass Ihnen das nicht gefällt. Es besteht die Möglichkeit, Mathjax zur Kompilierungszeit zu verwenden. Diese Methode ersetzt mathml
portable HTML
, das dann ohne Javascript angezeigt werden kann. SieheMathjax-Knoten. Die nächste Version von Make4ht wird eine Option für dieses Projekt bieten.