SVG-Mathematik/andere Symbole in htlatex: Verwenden Sie etwas anderes als pstoedit

SVG-Mathematik/andere Symbole in htlatex: Verwenden Sie etwas anderes als pstoedit

Ich habe eine Datei und möchte abwechselnd druckbare PDF-Dateien über xelatexund HTML-Seiten über erstellen htlatex. Standardmäßig htlatexwerden 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

htlatexBin ü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 pstoeditund es gibt keine Binärdatei für mein Betriebssystem, FreeBSD.

htlatexWie kann ich SVG-Mathematik und eigentlich alles andere in SVG zwischen einigen Befehlen mit oder ohne markieren pstoedit?

Ich habe festgestellt, dass htlatexes 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 uniconvertorund 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.

Bildbeschreibung hier eingeben

Das Bild sollte wie die Ausgabe von default aussehen htlatex, also wie ein SVG.

Bildbeschreibung hier eingeben

Antwort1

Wir sollten es wirklich pstoeditdurch etwas Besseres ersetzen. Tatsächlich ist der Prozess, bei dem wir DVIin PostScriptund dann in konvertieren SVG, heute nicht mehr wirklich notwendig, da es heutzutage direkte DVIKonverter SVGgibt.

Sie können die Befehle zur Bildkonvertierung in tex4ht.envder Datei ändern, aber dieser Vorgang ist nicht ganz einfach. Stattdessen würde ich verwenden make4ht, was ein moderner Ersatz für htlatexmit 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:imageder 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 DVIDatei, ${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 .mk4Erweiterung 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 mathmlist 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 mathmlportable HTML, das dann ohne Javascript angezeigt werden kann. SieheMathjax-Knoten. Die nächste Version von Make4ht wird eine Option für dieses Projekt bieten.

verwandte Informationen