dvisvgm 调用 4ht 保存的框的乘法

dvisvgm 调用 4ht 保存的框的乘法

使用以下 MWE,我观察到dvisvgm被调用两次而不是一次:

\documentclass{scrbook}

\usepackage{blindtext}

\usepackage{pgfornament}
\tikzset{
  myfroufrou/.pic={
    \node {\pgfornament[height=1cm]{79}};
  }
}
\usepackage{storebox}
\newstorebox{\froufroubox}

\title{Some Book}
\subtitle{A novel}
\author{Some Author}

\begin{document}
\storebox{\froufroubox}{%
  { \tikz \pic{myfroufrou}; }
}

\chapter{Chapter One}
\blindtext{}

\usestorebox{\froufroubox}
\blindtext{}
\usestorebox{\froufroubox}

\end{document}

用 编译它pdflatex似乎只会创建一次 TikZ 图片,storebox按预期将其存储在 中,并多次使用它。我可以通过\special{dvisgm:raw something}在 中添加tikzpicture并计算警告数量来确认这一点。

但是,通过以下方式编译它make4ht

make4ht --utf8 book.tex "svg"

showsdvisvgm被调用了两次,而且两次调用似乎都写入了同一个<jobname>0x.svg文件。在我的最终文档中,我想froufrou多次使用 -like 分隔符,因此节省一些计算时间会很有利。使用 asavebox代替 astorebox不会改变观察到的行为。

有没有办法将dvisvgm调用次数减少到唯一图片的数量(在本例中为一张)?

答案1

您可以使用dvisvgm_hashesmake4ht 扩展。它可以加快 SVG 编译速度,因为它可以并行转换多个页面。它也不会编译与上次编译相比没有变化的图像。

使用此命令:

make4ht -f html5+dvisvgm_hashes filename.tex

结果如下:

在此处输入图片描述

相关内容