texlive[65711] Build/source/texk/dvisvgm: dvisvgm 3.0.2

commits+karl at tug.org commits+karl at tug.org
Thu Feb 2 00:11:11 CET 2023


Revision: 65711
          http://tug.org/svn/texlive?view=revision&revision=65711
Author:   karl
Date:     2023-02-02 00:11:10 +0100 (Thu, 02 Feb 2023)
Log Message:
-----------
dvisvgm 3.0.2

Modified Paths:
--------------
    trunk/Build/source/texk/dvisvgm/TLpatches/TL-Changes
    trunk/Build/source/texk/dvisvgm/TLpatches/patch-04-configure
    trunk/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles
    trunk/Build/source/texk/dvisvgm/configure
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/NEWS
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/aminclude_static.am
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.hpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.cpp
    trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.hpp
    trunk/Build/source/texk/dvisvgm/version.ac

Modified: trunk/Build/source/texk/dvisvgm/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/texk/dvisvgm/TLpatches/TL-Changes	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/TLpatches/TL-Changes	2023-02-01 23:11:10 UTC (rev 65711)
@@ -7,10 +7,11 @@
 Update version in ./version.ac.
 Update DATE and copyrights in configure.ac.
 
+ver=3.NEW.VER
 mv dvisvgm-src dvisvgm-prev
-tar xf dvisvgm-VER.tar.gz
-mv dvisvgm-VER dvisvgm-src
-tar xf dvisvgm-VER.tar.gz # again, so we can compare orig release to ours
+tar xf dvisvgm-$ver.tar.gz
+mv dvisvgm-$ver dvisvgm-src
+tar xf dvisvgm-$ver.tar.gz # again, so we can compare orig release to ours
 
 # remove common and generated files:
 cd dvisvgm-src
@@ -43,6 +44,6 @@
 autoreconf
 
 # before committing, update patches:
-diff -u2 dvisvgm-3.0.1/configure.ac ./ >TLpatches/patch-04-configure
-for m in `(cd ./dvisvgm-src && find -name Makefile.am)`; do \
-  diff -u2 dvisvgm-{3.0.1,src}/$m; done >TLpatches/patch-08-makefiles
+diff -u2 dvisvgm-$ver/configure.ac ./ >TLpatches/patch-04-configure
+for m in `(cd ./dvisvgm-src && find -name Makefile.am -o -name defs.am)`; do \
+  diff -u2 dvisvgm-{$ver,src}/$m; done >TLpatches/patch-08-makefiles

Modified: trunk/Build/source/texk/dvisvgm/TLpatches/patch-04-configure
===================================================================
--- trunk/Build/source/texk/dvisvgm/TLpatches/patch-04-configure	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/TLpatches/patch-04-configure	2023-02-01 23:11:10 UTC (rev 65711)
@@ -1,5 +1,5 @@
---- dvisvgm-3.0.1/configure.ac	2023-01-10 05:23:42.000000000 -0800
-+++ ./configure.ac	2023-01-19 15:35:24.739713575 -0800
+--- dvisvgm-3.0.2/configure.ac	2023-01-29 23:25:49.000000000 -0800
++++ ./configure.ac	2023-01-19 17:55:07.781367630 -0800
 @@ -1,15 +1,32 @@
 -# This file is part of dvisvgm
 -# Copyright (C) 2005-2023 Martin Gieseking <martin.gieseking at uos.de>
@@ -7,8 +7,8 @@
 -# Process this file with autoconf to produce a configure script.
 -
 -AC_PREREQ([2.69])
--AC_INIT([dvisvgm],[3.0.1],[martin.gieseking at uos.de])
-+dnl $Id: configure.ac 64941 2022-11-05 15:43:53Z karl $
+-AC_INIT([dvisvgm],[3.0.2],[martin.gieseking at uos.de])
++dnl $Id: configure.ac 65593 2023-01-20 01:55:04Z karl $
 +dnl Process this file with autoconf to produce a configure script
 +dnl for dvisvgm in TeX Live.
 +dnl

Modified: trunk/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles
===================================================================
--- trunk/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles	2023-02-01 23:11:10 UTC (rev 65711)
@@ -1,5 +1,5 @@
---- dvisvgm-3.0.1/./Makefile.am	2023-01-10 05:22:18.000000000 -0800
-+++ dvisvgm-src/./Makefile.am	2023-01-19 15:27:47.262096221 -0800
+--- dvisvgm-3.0.2/./Makefile.am	2023-01-17 00:55:33.000000000 -0800
++++ dvisvgm-src/./Makefile.am	2023-02-01 15:05:49.038254644 -0800
 @@ -4,9 +4,9 @@
  ## Process this file with automake.
  
@@ -12,8 +12,27 @@
 +SUBDIRS = libs src #not for TL: m4 tests doc
  ACLOCAL_AMFLAGS = -I m4
  
---- dvisvgm-3.0.1/./libs/Makefile.am	2023-01-10 05:22:18.000000000 -0800
-+++ dvisvgm-src/./libs/Makefile.am	2023-01-19 15:14:57.121900128 -0800
+--- dvisvgm-3.0.2/./libs/defs.am	2022-12-06 08:13:36.000000000 -0800
++++ dvisvgm-src/./libs/defs.am	2023-02-01 15:07:30.036487762 -0800
+@@ -5,6 +5,14 @@
+ 
+ if !HAVE_POTRACE
+-POTRACE_CFLAGS = -I$(dvisvgm_srcdir)/libs/potrace
+-POTRACE_LIBS = ../libs/potrace/libpotrace.a
++# Gets automake warnings:
++#   dvisvgm-src/src/../libs/defs.am:9: warning: POTRACE_LIBS was already defined in condition TRUE, which includes condition !HAVE_POTRACE and !TEXLIVE_BUILD ...
++#   dvisvgm-src/src/Makefile.am:14:   'dvisvgm-src/src/../libs/defs.am' included from here
++#   configure.ac:51: ... 'POTRACE_LIBS' previously defined here
++#if !TEXLIVE_BUILD
++#POTRACE_CFLAGS = -I$(dvisvgm_srcdir)/libs/potrace
++#POTRACE_LIBS = ../libs/potrace/libpotrace.a
++#else
++POTRACE_CFLAGS = $(POTRACE_INCLUDES)
++#endif TEXLIVE_BUILD
+ endif
+ 
+--- dvisvgm-3.0.2/./libs/Makefile.am	2023-01-17 00:55:33.000000000 -0800
++++ dvisvgm-src/./libs/Makefile.am	2023-02-01 15:05:49.038254644 -0800
 @@ -4,5 +4,9 @@
  ## Process this file with automake.
  
@@ -25,8 +44,8 @@
 +endif
  
  if ENABLE_WOFF
---- dvisvgm-3.0.1/./src/Makefile.am	2023-01-10 05:22:18.000000000 -0800
-+++ dvisvgm-src/./src/Makefile.am	2023-01-19 15:45:32.415222210 -0800
+--- dvisvgm-3.0.2/./src/Makefile.am	2023-01-17 00:55:33.000000000 -0800
++++ dvisvgm-src/./src/Makefile.am	2023-02-01 15:05:49.038254644 -0800
 @@ -17,8 +17,6 @@
  	$(noinst_LTLIBRARIES) \
  	../libs/clipper/libclipper.a \

Modified: trunk/Build/source/texk/dvisvgm/configure
===================================================================
--- trunk/Build/source/texk/dvisvgm/configure	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/configure	2023-02-01 23:11:10 UTC (rev 65711)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for dvisvgm (TeX Live) 3.0.1.
+# Generated by GNU Autoconf 2.71 for dvisvgm (TeX Live) 3.0.2.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -629,8 +629,8 @@
 # Identity of this package.
 PACKAGE_NAME='dvisvgm (TeX Live)'
 PACKAGE_TARNAME='dvisvgm--tex-live-'
-PACKAGE_VERSION='3.0.1'
-PACKAGE_STRING='dvisvgm (TeX Live) 3.0.1'
+PACKAGE_VERSION='3.0.2'
+PACKAGE_STRING='dvisvgm (TeX Live) 3.0.2'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1445,7 +1445,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures dvisvgm (TeX Live) 3.0.1 to adapt to many kinds of systems.
+\`configure' configures dvisvgm (TeX Live) 3.0.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1517,7 +1517,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of dvisvgm (TeX Live) 3.0.1:";;
+     short | recursive ) echo "Configuration of dvisvgm (TeX Live) 3.0.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1657,7 +1657,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-dvisvgm (TeX Live) configure 3.0.1
+dvisvgm (TeX Live) configure 3.0.2
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2419,7 +2419,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by dvisvgm (TeX Live) $as_me 3.0.1, which was
+It was created by dvisvgm (TeX Live) $as_me 3.0.2, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -9030,7 +9030,7 @@
 
 # Define the identity of the package.
  PACKAGE='dvisvgm--tex-live-'
- VERSION='3.0.1'
+ VERSION='3.0.2'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -21326,7 +21326,7 @@
 Report bugs to <bug-libtool at gnu.org>."
 
 lt_cl_version="\
-dvisvgm (TeX Live) config.lt 3.0.1
+dvisvgm (TeX Live) config.lt 3.0.2
 configured by $0, generated by GNU Autoconf 2.71.
 
 Copyright (C) 2011 Free Software Foundation, Inc.
@@ -24831,7 +24831,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by dvisvgm (TeX Live) $as_me 3.0.1, which was
+This file was extended by dvisvgm (TeX Live) $as_me 3.0.2, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -24899,7 +24899,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-dvisvgm (TeX Live) config.status 3.0.1
+dvisvgm (TeX Live) config.status 3.0.2
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in	2023-02-01 23:11:10 UTC (rev 65711)
@@ -15,7 +15,7 @@
 @SET_MAKE@
 
 # aminclude_static.am generated automatically by Autoconf
-# from AX_AM_MACROS_STATIC on Tue Jan 10 14:41:23 CET 2023
+# from AX_AM_MACROS_STATIC on Mon Jan 30 08:25:52 CET 2023
 VPATH = @srcdir@
 am__is_gnu_make = { \
   if test -z '$(MAKELEVEL)'; then \

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/NEWS
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/NEWS	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/NEWS	2023-02-01 23:11:10 UTC (rev 65711)
@@ -1,3 +1,9 @@
+dvisvgm-3.0.2 (2023-01-30)
+- fixed computation of font sizes in new PDF handler (GH issue #220)
+- fixed viewBox coordinates determined by new PDF handler (GH issue #223)
+- improved detection of font names used in PDF files (GH issue #224)
+- minor code improvements	
+
 dvisvgm-3.0.1 (2023-01-10)
 - added support for the 64-bit GS library in TeX Live
   (patch sent by Akira Kakuto)

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/aminclude_static.am
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/aminclude_static.am	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/aminclude_static.am	2023-02-01 23:11:10 UTC (rev 65711)
@@ -1,6 +1,6 @@
 
 # aminclude_static.am generated automatically by Autoconf
-# from AX_AM_MACROS_STATIC on Tue Jan 10 14:41:23 CET 2023
+# from AX_AM_MACROS_STATIC on Mon Jan 30 08:25:52 CET 2023
 
 
 # Code coverage

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac	2023-02-01 23:11:10 UTC (rev 65711)
@@ -4,7 +4,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.69])
-AC_INIT([dvisvgm],[3.0.1],[martin.gieseking at uos.de])
+AC_INIT([dvisvgm],[3.0.2],[martin.gieseking at uos.de])
 DATE="January 2023"
 AC_CONFIG_SRCDIR(src)
 AC_CONFIG_HEADERS([config.h])

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1	2023-02-01 23:11:10 UTC (rev 65711)
@@ -4,10 +4,10 @@
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
 .\"      Date: 2022-10-14
 .\"    Manual: dvisvgm Manual
-.\"    Source: dvisvgm 3.0.1
+.\"    Source: dvisvgm 3.0.2
 .\"  Language: English
 .\"
-.TH "DVISVGM" "1" "2022\-10\-14" "dvisvgm 3\&.0\&.1" "dvisvgm Manual"
+.TH "DVISVGM" "1" "2022\-10\-14" "dvisvgm 3\&.0\&.2" "dvisvgm Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.cpp	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.cpp	2023-02-01 23:11:10 UTC (rev 65711)
@@ -325,18 +325,18 @@
 
 /** Registers a native font that is referenced by its name instead of a DVI font number.
  *  @param[in] fname filename/path of the font file
+ *  @param[in] fontname font name used if the font file doesn't provide one
  *  @param[in] ptsize font size in PS points
  *  return global ID assigned to the font */
-int FontManager::registerFont (const std::string &fname, double ptsize) {
+int FontManager::registerFont (const string &fname, string fontname, double ptsize) {
 	if (fname.empty())
 		return -1;
-	string fontname;
 	if (fname.size() > 6 && fname.substr(0,6) == "sys://") {
 		fontname = fname.substr(6);
 		if (!find_base14_font(fontname))
 			return -1;
 	}
-	else if (!FileSystem::exists(fname) || (fontname = FontEngine::instance().getPSName(fname)).empty())
+	else if (!FileSystem::exists(fname) || (fontname.empty() && (fontname = FontEngine::instance().getPSName(fname)).empty()))
 		return -1;
 	int id = fontID(fontname, ptsize);
 	if (id >= 0)
@@ -345,7 +345,7 @@
 	id = fontID(fontname);
 	if (id < 0) {
 		nativeFont = util::make_unique<NativeFontImpl>(fname, fontname, ptsize);
-		_name2id.emplace(std::move(fontname), _fonts.size());
+		_name2id.emplace(std::move(fontname), int(_fonts.size()));
 	}
 	else {
 		auto *nf = font_cast<NativeFont*>(getFontById(id));

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.hpp	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.hpp	2023-02-01 23:11:10 UTC (rev 65711)
@@ -57,8 +57,7 @@
 		int registerFont (uint32_t fontnum, const std::string &fontname, uint32_t checksum, double dsize, double scale);
 		int registerFont (uint32_t fontnum, const std::string &fname, double ptsize, const FontStyle &style, Color color);
 		int registerFont (uint32_t fontnum, const std::string &fname, int fontIndex, double ptsize, const FontStyle &style, Color color);
-//		int registerFont (const std::string &fname, int fontIndex, double ptsize, const FontStyle &style, Color color);
-		int registerFont (const std::string &fname, double ptsize);
+		int registerFont (const std::string &fname, std::string fontname, double ptsize);
 		Font* getFont (int n) const;
 		Font* getFont (const std::string &name) const;
 		Font* getFont (const std::string &name, double ptsize);

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.cpp	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.cpp	2023-02-01 23:11:10 UTC (rev 65711)
@@ -139,19 +139,6 @@
 }
 
 
-/** Returns the bounding box of a selected PDF page. */
-BoundingBox PDFHandler::bbox (string &fname, int pageno) {
-	BoundingBox bbox;
-	string arraystr = mtShow(fname, "pages/" + to_string(pageno) + "/MediaBox");
-	if (arraystr.substr(0, 4) == "null")
-		arraystr = mtShow(fname, "pages/" + to_string(pageno) + "/Parent/MediaBox");
-	auto vec = parse_pdf_array<double>(arraystr);
-	if (vec.size() == 4)
-		bbox = BoundingBox(vec[0], vec[1], vec[2], vec[3]);
-	return bbox;
-}
-
-
 /** Converts a single page of a PDF file to SVG. If no context element is given,
  *  the SVG page contents are added to a page group element of the SVG tree.
  *  Otherwise, they are added to the context element which is not inserted into
@@ -220,15 +207,12 @@
 
 void PDFHandler::initPage (int pageno, unique_ptr<SVGElement> context) {
 	_pageno = pageno;
-	_bbox = bbox(_fname, pageno);
-	if (context) {
+	if (!context)
+		_svg->newPage(_pageno);
+	else {
 		_context = context.get();
 		_svg->pushPageContext(std::move(context));
 	}
-	else {
-		_svg->newPage(_pageno);
-		_svg->setBBox(_bbox);
-	}
 	// collect sequence of images referenced on current page
 	collectObjects();
 	_imgSeq.clear();
@@ -287,7 +271,8 @@
 	struct Handler {
 		const char *name;
 		void (PDFHandler::*func)(XMLElement*);
-	} handlers[9] = {
+	} handlers[10] = {
+		{"page", &PDFHandler::doPage},
 		{"stroke_path", &PDFHandler::doStrokePath},
 		{"fill_path", &PDFHandler::doFillPath},
 		{"fill_image", &PDFHandler::doFillImage},
@@ -309,6 +294,13 @@
 }
 
 
+void PDFHandler::doPage (XMLElement *trcPageElement) {
+	auto vec = parse_attr_value<vector<double>>(trcPageElement, "mediabox");
+	if (vec.size() == 4)
+		_bbox = BoundingBox(vec[0], vec[1], vec[2], vec[3]);
+}
+
+
 /** Returns a color object from color data given in the trace XML.
  *  @param[in] colorspace currently supported: DeviceGray, DeviceRGB, DeviceCMYK
  *  @param[in] value color components depending on color space */
@@ -645,8 +637,9 @@
 				filename = it->second.fname;
 			if (filename.empty())
 				filename = "sys://"+fontname;
-			double ptsize = abs(trm[0]);
-			int fontID = FontManager::instance().registerFont(filename, ptsize);
+			double ptsize = matrix_extent({trm[0], trm[1], 0, trm[2], trm[3]});
+			ptsize = round(10*ptsize)/10;
+			int fontID = FontManager::instance().registerFont(filename, fontname, ptsize);
 			if (fontID >= 0) {
 				auto font = font_cast<NativeFont*>(FontManager::instance().getFontById(fontID));
 				if (font != _currentFont) {
@@ -789,7 +782,6 @@
 	_objDict = parse_pdf_dict<ObjID>(mtShow("pages/" + to_string(_pageno) + "/Resources/XObject"));
 	// replace referenced font IDs by actual IDs used for extracted fonts
 	for (auto &entry : _objDict) {
-		string objtype = mtShow(to_string(entry.second.num)+"/Type", SearchPattern(R"(/(\w+))", "$1"));
 		// store filenames of non-font object in object map
 		auto fnameIt = _extractedFiles.find(entry.second.num);
 		entry.second.fname = fnameIt != _extractedFiles.end() ? tmpdir+fnameIt->second : "";
@@ -798,6 +790,10 @@
 		if (entry.second.substr(0, 5) == "font-") {
 			string filepath = tmpdir+entry.second;  // path to font file
 			string fontname = strip_subset_prefix(FontEngine::instance().getPSName(filepath));
+			// If the extracted font file doesn't contain a font name,
+			// try to get it from the corresponding PDF object.
+			if (fontname.empty())
+				fontname = mtShow(to_string(entry.first)+"/FontName", SearchPattern(R"(/(\w+))", "$1"));
 			_objDict.emplace(fontname, ObjID(entry.first, 0, filepath));
 		}
 	}

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.hpp	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.hpp	2023-02-01 23:11:10 UTC (rev 65711)
@@ -57,7 +57,6 @@
 		const BoundingBox& bbox () const {return _bbox;}
 		std::unique_ptr<SVGElement> convert (const std::string &fname, int pageno, std::unique_ptr<SVGElement> context=nullptr);
 		static std::string mutoolVersion ();
-		static BoundingBox bbox (std::string &fname, int pageno);
 		static bool available () {return !mutoolVersion().empty();}
 
 	protected:
@@ -77,6 +76,7 @@
 		void collectObjects ();
 		void elementOpened (XMLElement *trcElement);
 		void elementClosed (XMLElement *trcElement);
+		void doPage (XMLElement *trcPageElement);
 		void doClipPath (XMLElement *trcClipPathElement);
 		void doClipStrokePath (XMLElement *trcClipStrokePathElement);
 		void doClipText (XMLElement *trcClipTextElement);

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp	2023-02-01 23:11:10 UTC (rev 65711)
@@ -179,7 +179,7 @@
 
 /** Returns the number of values mapped. */
 size_t RangeMap::numValues () const {
-	return std::accumulate(_ranges.begin(), _ranges.end(), 0, [](size_t sum, const Range &range) {
+	return std::accumulate(_ranges.begin(), _ranges.end(), size_t(0), [](size_t sum, const Range &range) {
 		return sum+range.max()-range.min()+1;
 	});
 }

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.cpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.cpp	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.cpp	2023-02-01 23:11:10 UTC (rev 65711)
@@ -2,7 +2,7 @@
 ** Base14Fonts.cpp                                                      **
 **                                                                      **
 ** This file is part of dvisvgm -- a fast DVI to SVG converter          **
-** Copyright (C) 2005-2022 Martin Gieseking <martin.gieseking at uos.de>   **
+** Copyright (C) 2005-2023 Martin Gieseking <martin.gieseking at uos.de>   **
 **                                                                      **
 ** This program is free software; you can redistribute it and/or        **
 ** modify it under the terms of the GNU General Public License as       **
@@ -38,6 +38,9 @@
 extern const MemoryFontData NimbusSans_Regular_cff;
 extern const MemoryFontData StandardSymbolsPS_cff;
 
+/** Returns the CFF font data for a given name of a Base 14 font.
+ *  If 'fontname' doesn't specify one of the 14 PDF base fonts,
+ *  the function returns nullptr. */
 const MemoryFontData* find_base14_font (const string &fontname) {
 	struct FontData {
 		const char *name;

Modified: trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.hpp
===================================================================
--- trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.hpp	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.hpp	2023-02-01 23:11:10 UTC (rev 65711)
@@ -2,7 +2,7 @@
 ** Base14Fonts.hpp                                                      **
 **                                                                      **
 ** This file is part of dvisvgm -- a fast DVI to SVG converter          **
-** Copyright (C) 2005-2022 Martin Gieseking <martin.gieseking at uos.de>   **
+** Copyright (C) 2005-2023 Martin Gieseking <martin.gieseking at uos.de>   **
 **                                                                      **
 ** This program is free software; you can redistribute it and/or        **
 ** modify it under the terms of the GNU General Public License as       **

Modified: trunk/Build/source/texk/dvisvgm/version.ac
===================================================================
--- trunk/Build/source/texk/dvisvgm/version.ac	2023-02-01 21:06:53 UTC (rev 65710)
+++ trunk/Build/source/texk/dvisvgm/version.ac	2023-02-01 23:11:10 UTC (rev 65711)
@@ -9,4 +9,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current dvisvgm version
-m4_define([dvisvgm_version], [3.0.1])
+m4_define([dvisvgm_version], [3.0.2])



More information about the tex-live-commits mailing list.