diff options
-rw-r--r-- | README.md | 6 | ||||
-rwxr-xr-x | websvgtex | 47 |
2 files changed, 50 insertions, 3 deletions
@@ -4,6 +4,6 @@ ## How it works 1. Wrap the input in a standard template that uses the "standalone" document class with the "preview" option and includes some math-related packages -2. Calls `latex x.dvi` to produce a DVI file -3. Calls `dvips x.ps` to produce a PS file -4. Calls `inkscape x.ps --export-plain-svg --export-filename=x.svg` to produce an SVG file +2. Calls `latex m.dvi` to produce a DVI file +3. Calls `dvips m.ps` to produce a PS file +4. Calls `inkscape m.ps --export-plain-svg --export-filename=m.svg` to produce an SVG file diff --git a/websvgtex b/websvgtex new file mode 100755 index 0000000..6bd12b2 --- /dev/null +++ b/websvgtex @@ -0,0 +1,47 @@ +#!/bin/sh + +err() { + { set +x; } 2>/dev/null + echo "$@" >&2 + exit 1 +} + +ensure_noset() { + [ $# -lt 1 ] && return 0 + $@ || err failed executing: "$@" +} + +ensure() { + { set +x; } 2>/dev/null + [ $# -lt 1 ] && return 0 + $@ || err failed executing: "$@" + { set -x; } 2>/dev/null +} + +rxrand="$(base64 < /dev/random | tr -d '/+=' | head -c 10)" + +opwd="$(pwd)" + +ensure_noset mkdir /tmp/websvgtex-$rxrand +ensure_noset cd /tmp/websvgtex-$rxrand + +cat >m.tex <<EOF +\documentclass[preview]{standalone} +\usepackage{amsmath} +\begin{document} +EOF + +cat /dev/stdin >>m.tex + +cat >>m.tex <<EOF +\end{document} +EOF + +{ set -x; } 2>/dev/null + +ensure latex m.tex +ensure latex m.tex +ensure dvips m.dvi +ensure inkscape m.ps --export-plain-svg --export-filename=m.svg + +ensure mv m.svg "$opwd" |