        ;; Cover page
        [:fo:block (style :h1) (format "Neu als Hörbuch Nr. %s" date)]
        (block {:break-before "odd-page"}) ;; toc should start on recto
-       (toc subitems [] 3 path-to-numbers :heading? true)
+       (toc subitems [] 3 {:path-to-numbers path-to-numbers :heading? true})
        (block {:break-before "odd-page"}) ;; the very first format should start on recto
-       (mapcat #(format-sexp (get subitems %) % 1 path-to-numbers false) (keys subitems))])]])
+       (mapcat #(format-sexp (get subitems %) % 1 {:path-to-numbers path-to-numbers :with-toc? false}) (keys subitems))])]])
 
 (defn- logo []
   [:fo:block {:space-before "100mm" :text-align "right"}

    (header :verso)

    [:fo:flow {:flow-name "xsl-region-body"}
     (toc items [] 1 nil :heading? true)
     (block {:break-before "odd-page"}) ;; the very first format should start on recto
     (mapcat #(format-sexp (get items %) % 1) (keys items))]]])

(defn document [items fmt editorial recommendations & args]
  (-> items

    (block {:keep-with-previous "always"}
           (bold "Verkauf:") " " price ". " (layout/braille-signatures product-number))))

(defmulti entry-sexp (fn [{fmt :format} opts] fmt))

(defmethod entry-sexp :hörbuch
  [{:keys [genre-text description duration narrators producer-brief
           produced-commercially? library-signature product-number price] :as item}
   {:keys [show-genre?] :or {show-genre? true}}]
  (list-item
   (entry-heading-sexp item)
   (when show-genre?
     (block (wrap genre-text "Genre: ")))
   (block (wrap description))
   (block (wrap duration "" " Min., " false) (narrators-sexp narrators))
