This commit is contained in:
2026-02-24 15:05:22 -07:00
parent 470dec9183
commit a52bc97ed3

View File

@@ -14,7 +14,7 @@
(def ^:private font-size 10)
(def ^:private tightpage-regexp
#"^Preview: Tightpage (-?[0-9]+)\s*(-?[0-9]+)\s*(-?[0-9]+)\s*(-?[0-9]+)")
#"Preview: Tightpage (-?\d+) *(-?\d+) *(-?\d+) *(-?\d+)")
(def ^:private preview-end-regexp
#"(?:^Preview: Tightpage.*$)?\n! Preview: Snippet \d+ ended.\((\d+)\+(\d+)x(\d+)\)")
@@ -22,12 +22,11 @@
(defn- invoke [extra-opts & args]
(let [namespace (or (::ns extra-opts)
(first args))
out-bytes (ByteArrayOutputStream.)
out-stream (common/tee-output-stream
(ByteArrayOutputStream.)
out-bytes
(l/log-stream :info (str namespace "/out")))
err-stream (common/tee-output-stream
(ByteArrayOutputStream.)
(l/log-stream :info (str namespace "/err")))
err-stream (l/log-stream :info (str namespace "/err"))
opts (merge extra-opts
{:out out-stream :err err-stream :continue true
:shutdown p/destroy-tree
@@ -38,12 +37,10 @@
(l/infof "%s exited w/ status %d"
(first cmd) exit))})
r (apply p/shell opts args)
out (.toString out-stream)]
out (.toString out-bytes)]
(-> r
(assoc ::out out))))
;; 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-xelatex [& {:keys [file output-dir]}]
(let [{out ::out} (invoke
{:dir output-dir}
@@ -52,6 +49,7 @@
[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,6 +64,11 @@
scale-divisor
font-size)})))))
;; 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 []}])
;;; Temml