On linux, make4ht is able to parallelize the build of SVGs in dvisvgm. It looks like dvisvgm_hashes.lua expects to run exactly "make -j". I'm stuck with jom (https://wiki.qt.io/Jom) for parallel builds on windows. Is there a way to override the use of make with another build tool?

Also, I manually ran "jom my-latex-file-images.mk" from the command line with the Makefile generated for "make" and it built the SVGs. However, the emitted files don't have the hash extension to the filename, so I think I'm missing something else.


1 Answer 1


With the updated make4ht sources, in particular with the updated dvisvgm_hashes extension, you can use the following build file:

filter_settings "dvisvgm_hashes" {
  scale= 1.6,
  make_command = "jom -j ${process_count} -f ${make_file}",
  test_make_command = "jom -v" -- or any other command that will produce some output

The two new settings are make_command and test_make_command. I don't have any possibility to test if it works, but assuming that it is a replacement for make, it should.

  • Can I drop that version of dvisvgm_hashes.lua into my TeXLive 2019 installation or do I need more of the make4ht code?
    – Allen
    Commented Apr 15 at 13:47
  • @Allen dvisvgm_hashes is quite old extension, so it is likely that it will work even with TeX Live 2019. But it is in general a good idea to update such old distro.
    – michal.h21
    Commented Apr 15 at 13:53
  • Thanks again! I had to comment out the logging calls for it to work with the old installation. But it correctly invokes jom.
    – Allen
    Commented Apr 15 at 16:24
  • I have another issue: the script is not renaming the svg files. At line 204, I added some print statements: ``` for page, file in pairs(generated_files) do print( file ) print( page ) print( make_hashed_name(arg.input, dvi_pages[page]) ) local a,b = os.rename(file, make_hashed_name(arg.input, dvi_pages[page])) print(a) print(b) end``` An example output is: user_manual-010.svg 10 user_manual-6eb9e42ae42fd8873f938cae7c49353b.svg nil Invalid argument
    – Allen
    Commented Apr 15 at 16:26
  • @Allen more interesting debugging message would be print(make_hashed_name(arg.input, dvi_pages[page])), what does that print?
    – michal.h21
    Commented Apr 15 at 20:50

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .