This commit is contained in:
@@ -72,7 +72,8 @@
|
||||
dimensional-info (->> r (drop 2) (map parse-long))
|
||||
errors (-> out
|
||||
(subs (.end m-start) (.start m-end))
|
||||
(str/replace-first #"[^!]*" ""))]
|
||||
(str/replace-first #"[^!]*" "")
|
||||
str/trim)]
|
||||
(assert (= snippet-ix snippet-ix*))
|
||||
(recur (conj acc (-> (snippet-dimensions
|
||||
tightpage-info dimensional-info)
|
||||
@@ -90,13 +91,12 @@
|
||||
;; 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 [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))
|
||||
(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))
|
||||
|
||||
(defn- snippet-file-names
|
||||
"Return a map of TeX snippets (as strings, including the math
|
||||
@@ -120,14 +120,26 @@
|
||||
(fs/with-temp-dir [dir {:prefix "doerg-xelatex"}]
|
||||
(let [preview-tex (fs/file dir "preview.tex")
|
||||
preview-xdv (fs/file dir "preview.xdv")
|
||||
snippet->file (-> (snippet-file-names snippets)
|
||||
(update-vals #(fs/file dir %)))]
|
||||
distinct-snippets (distinct snippets)]
|
||||
(fs/create-dirs output-dir)
|
||||
(->> (instantiate-preview-template snippets)
|
||||
(->> (instantiate-preview-template distinct-snippets)
|
||||
(spit preview-tex))
|
||||
(invoke-xelatex :output-dir dir :file preview-tex)
|
||||
(invoke-dvisvgm :output-dir output-dir :file preview-xdv)
|
||||
snippet->file
|
||||
(let [dimensions (-> (invoke-xelatex :output-dir dir :file preview-tex)
|
||||
::out parse-xelatex-output)
|
||||
_ (invoke-dvisvgm :output-dir output-dir :file preview-xdv)]
|
||||
;; Adorn each snippet with dimensions and errors parsed from
|
||||
;; XeLaTeX's output, and the paths to SVG files generated by
|
||||
;; dvisvgm.
|
||||
(assert (= (count distinct-snippets) (count dimensions)))
|
||||
(->> (map (fn [ix snippet dimensions]
|
||||
{snippet
|
||||
(-> dimensions
|
||||
(assoc :file
|
||||
(fs/file dir (format "%09d.svg" (inc ix)))))})
|
||||
(range)
|
||||
distinct-snippets
|
||||
dimensions)
|
||||
(into {})))
|
||||
#_
|
||||
(do (when (fs/exists? "/tmp/doerg-tex-test") ; For debugging
|
||||
(fs/delete-tree "/tmp/doerg-tex-test"))
|
||||
@@ -136,8 +148,8 @@
|
||||
(comment
|
||||
(render-xelatex "/tmp/doerg-tex-svgs"
|
||||
"\\(c = \\sqrt{x^2 + y^2}\\)"
|
||||
"x" "y" "x"
|
||||
"\\undefinedcommandlol"))
|
||||
"\\(x\\)" "\\(y\\)" "\\(x\\)"
|
||||
"\\(\\undefinedcommandlol\\)"))
|
||||
|
||||
|
||||
;;; Temml
|
||||
|
||||
Reference in New Issue
Block a user