This commit is contained in:
@@ -45,27 +45,34 @@
|
||||
(-> r
|
||||
(assoc ::out out))))
|
||||
|
||||
(defn- parse-tightpage [xelatex-out]
|
||||
(->> (re-find tightpage-regexp xelatex-out)
|
||||
(drop 1)
|
||||
(map parse-long)))
|
||||
|
||||
(defn- snippet-dimensions [[tp1 tp2 tp3 tp4] [d1 d2 d3]]
|
||||
(let [depth (/ (- d2 tp2) scale-divisor font-size)]
|
||||
{:depth depth
|
||||
:height (+ depth
|
||||
(/ (+ d1 tp4)
|
||||
scale-divisor
|
||||
font-size))
|
||||
:width (/ (+ d3 tp3 (- tp2))
|
||||
scale-divisor
|
||||
font-size)}))
|
||||
|
||||
(defn- parse-xelatex-output [out]
|
||||
(let [[tp1 tp2 tp3 tp4] (->> (re-find tightpage-regexp out)
|
||||
(drop 1)
|
||||
(map parse-long))
|
||||
(let [tightpage-info (parse-tightpage out)
|
||||
m-start (re-matcher preview-start-regexp out)
|
||||
m-end (re-matcher preview-end-regexp out)]
|
||||
(loop [acc []]
|
||||
(if-some [[_ snippet-ix] (re-find m-start)]
|
||||
(let [r (re-find m-end)
|
||||
[_ snippet-ix* _ _ _] r
|
||||
[d1 d2 d3] (->> r (drop 2) (map parse-long))
|
||||
depth (/ (- d2 tp2) scale-divisor font-size)]
|
||||
dimensional-info (->> r (drop 2) (map parse-long))]
|
||||
(assert (= snippet-ix snippet-ix*))
|
||||
(recur (conj acc {:depth depth
|
||||
:height (+ depth
|
||||
(/ (+ d1 tp4)
|
||||
scale-divisor
|
||||
font-size))
|
||||
:width (/ (+ d3 tp3 (- tp2))
|
||||
scale-divisor
|
||||
font-size)})))
|
||||
(recur (conj acc (merge (snippet-dimensions
|
||||
tightpage-info dimensional-info)))))
|
||||
acc))))
|
||||
|
||||
(defn- invoke-xelatex [& {:keys [file output-dir]}]
|
||||
|
||||
Reference in New Issue
Block a user