diff --git a/doerg/resources/net/deertopia/doerg/preview-template.tex b/doerg/resources/net/deertopia/doerg/preview-template.tex new file mode 100644 index 0000000..6761074 --- /dev/null +++ b/doerg/resources/net/deertopia/doerg/preview-template.tex @@ -0,0 +1,10 @@ +\documentclass{article} +\usepackage{amsmath} +\usepackage[active,tightpage,auctex,dvips]{preview} +\usepackage{fontspec} +%% \usepackage{syd-plex} + +\begin{document} +\setlength\abovedisplayskip{0pt} +% {{contents}} +\end{document} diff --git a/doerg/src/net/deertopia/doerg/tex.clj b/doerg/src/net/deertopia/doerg/tex.clj index b21f8f8..c4cb88a 100644 --- a/doerg/src/net/deertopia/doerg/tex.clj +++ b/doerg/src/net/deertopia/doerg/tex.clj @@ -49,7 +49,6 @@ [tp1 tp2 tp3 tp4] (->> (re-find tightpage-regexp out) (drop 1) (map parse-long))] - (def the-out out) (->> (re-seq preview-end-regexp out) (map #(let [[d1 d2 d3] (map parse-long (drop 1 %)) depth (/ (- d2 tp2) @@ -66,8 +65,22 @@ ;; dvisvgm --page=1- --optimize --clipjoin --relative --no-fonts -v3 --message='processing page {?pageno}: output written to {?svgpath}' --bbox=preview -o %B-%%9p.svg %f -#_ -(defn- invoke-dvisvgm [& {:keys []}]) +(defn- invoke-dvisvgm [& {:keys [file output-dir]}] + (let [r (invoke + {:dir output-dir} + "dvisvgm" "--page=1-" "--optimize" "--clipjoin" + "--relative" "--no-fonts" "-v3" + "--message=processing page {?pageno}: output written to {?svgpath}" + "--bbox=preview" "-o" "%9p.svg" file)] + r)) + +(defn render-xelatex [& snippets] + (let [contents (->> (for [s snippets] + (format "\\begin{preview}\n%s\\end{preview}" s)) + (str/join "\n"))] + (-> (io/resource "net/deertopia/doerg/preview-template.tex") + slurp + (str/replace-first #"% {{contents}}" contents)))) ;;; Temml