From abaa8cf5f9d5ae5230529d86c8b5d221c59949fa Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 1 Feb 2023 23:11:10 +0000 Subject: dvisvgm 3.0.2 git-svn-id: svn://tug.org/texlive/trunk@65711 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/dvisvgm/TLpatches/TL-Changes | 13 +++---- .../texk/dvisvgm/TLpatches/patch-04-configure | 8 ++--- .../texk/dvisvgm/TLpatches/patch-08-makefiles | 31 ++++++++++++---- Build/source/texk/dvisvgm/configure | 22 ++++++------ Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in | 2 +- Build/source/texk/dvisvgm/dvisvgm-src/NEWS | 6 ++++ .../texk/dvisvgm/dvisvgm-src/aminclude_static.am | 2 +- Build/source/texk/dvisvgm/dvisvgm-src/configure.ac | 2 +- .../source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 | 4 +-- .../texk/dvisvgm/dvisvgm-src/src/FontManager.cpp | 8 ++--- .../texk/dvisvgm/dvisvgm-src/src/FontManager.hpp | 3 +- .../texk/dvisvgm/dvisvgm-src/src/PDFHandler.cpp | 42 ++++++++++------------ .../texk/dvisvgm/dvisvgm-src/src/PDFHandler.hpp | 2 +- .../texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp | 2 +- .../dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.cpp | 5 ++- .../dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.hpp | 2 +- Build/source/texk/dvisvgm/version.ac | 2 +- 17 files changed, 90 insertions(+), 66 deletions(-) diff --git a/Build/source/texk/dvisvgm/TLpatches/TL-Changes b/Build/source/texk/dvisvgm/TLpatches/TL-Changes index 415d9d2abd6..277e08771e4 100644 --- a/Build/source/texk/dvisvgm/TLpatches/TL-Changes +++ b/Build/source/texk/dvisvgm/TLpatches/TL-Changes @@ -7,10 +7,11 @@ Changes applied to the original dvisvgm source as obtained from: 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 @@ patch -d dvisvgm-src -p1 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 diff --git a/Build/source/texk/dvisvgm/TLpatches/patch-04-configure b/Build/source/texk/dvisvgm/TLpatches/patch-04-configure index b1579ed6822..948f16eb4d6 100644 --- a/Build/source/texk/dvisvgm/TLpatches/patch-04-configure +++ b/Build/source/texk/dvisvgm/TLpatches/patch-04-configure @@ -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 @@ -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@uos.de]) -+dnl $Id: configure.ac 64941 2022-11-05 15:43:53Z karl $ +-AC_INIT([dvisvgm],[3.0.2],[martin.gieseking@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 diff --git a/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles b/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles index 377c0243c72..a9d592c59c6 100644 --- a/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles +++ b/Build/source/texk/dvisvgm/TLpatches/patch-08-makefiles @@ -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 \ diff --git a/Build/source/texk/dvisvgm/configure b/Build/source/texk/dvisvgm/configure index affaffa697c..52bcf808b95 100755 --- a/Build/source/texk/dvisvgm/configure +++ b/Build/source/texk/dvisvgm/configure @@ -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 . # @@ -629,8 +629,8 @@ MAKEFLAGS= # 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@tug.org' PACKAGE_URL='' @@ -1445,7 +1445,7 @@ if test "$ac_init_help" = "long"; then # 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 @@ fi 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 @@ fi 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 @@ cat >config.log <<_ACEOF 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 @@ fi # 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 @@ Usage: $0 [OPTIONS] Report bugs to ." 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 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # 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 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ 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\\" diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in b/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in index 8e0a97bfa38..25134d16089 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in +++ b/Build/source/texk/dvisvgm/dvisvgm-src/Makefile.in @@ -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 \ diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/NEWS b/Build/source/texk/dvisvgm/dvisvgm-src/NEWS index d1f6981d0bf..73e94d8cac0 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/NEWS +++ b/Build/source/texk/dvisvgm/dvisvgm-src/NEWS @@ -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) diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/aminclude_static.am b/Build/source/texk/dvisvgm/dvisvgm-src/aminclude_static.am index da2bc19bda7..fa78c284abf 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/aminclude_static.am +++ b/Build/source/texk/dvisvgm/dvisvgm-src/aminclude_static.am @@ -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 diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac b/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac index 7fa9e9b18f5..27e1e2ec396 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac +++ b/Build/source/texk/dvisvgm/dvisvgm-src/configure.ac @@ -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@uos.de]) +AC_INIT([dvisvgm],[3.0.2],[martin.gieseking@uos.de]) DATE="January 2023" AC_CONFIG_SRCDIR(src) AC_CONFIG_HEADERS([config.h]) diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 b/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 index 06705cef777..dc17575416b 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 +++ b/Build/source/texk/dvisvgm/dvisvgm-src/doc/dvisvgm.1 @@ -4,10 +4,10 @@ .\" Generator: DocBook XSL Stylesheets vsnapshot .\" 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 .\" ----------------------------------------------------------------- diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.cpp index 7eeaadeb9da..bc6f88d322b 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.cpp @@ -325,18 +325,18 @@ int FontManager::registerFont (uint32_t fontnum, const string &filename, int fon /** 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 @@ int FontManager::registerFont (const std::string &fname, double ptsize) { id = fontID(fontname); if (id < 0) { nativeFont = util::make_unique(fname, fontname, ptsize); - _name2id.emplace(std::move(fontname), _fonts.size()); + _name2id.emplace(std::move(fontname), int(_fonts.size())); } else { auto *nf = font_cast(getFontById(id)); diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.hpp index eeaa1949de9..503813a86d5 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/FontManager.hpp @@ -57,8 +57,7 @@ class FontManager { 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); diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.cpp index 9703124e2c7..ba88e698525 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.cpp @@ -139,19 +139,6 @@ string PDFHandler::mutoolVersion () { } -/** 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(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::finishFile () { void PDFHandler::initPage (int pageno, unique_ptr 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 @@ void PDFHandler::elementClosed (XMLElement *trcElement) { 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::elementClosed (XMLElement *trcElement) { } +void PDFHandler::doPage (XMLElement *trcPageElement) { + auto vec = parse_attr_value>(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 @@ void PDFHandler::doFillText (XMLElement *trcFillTextElement) { 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(FontManager::instance().getFontById(fontID)); if (font != _currentFont) { @@ -789,7 +782,6 @@ void PDFHandler::collectObjects () { _objDict = parse_pdf_dict(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 @@ void PDFHandler::collectObjects () { 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)); } } diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.hpp index fd34ce05685..3400a1d69d7 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/PDFHandler.hpp @@ -57,7 +57,6 @@ class PDFHandler { const BoundingBox& bbox () const {return _bbox;} std::unique_ptr convert (const std::string &fname, int pageno, std::unique_ptr 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 @@ class PDFHandler { 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); diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp index bac95b3093d..11489113f3c 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/RangeMap.cpp @@ -179,7 +179,7 @@ uint32_t RangeMap::valueAt (uint32_t c) const { /** 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; }); } diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.cpp index 07f4850bc1b..6f316ffca97 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.cpp @@ -2,7 +2,7 @@ ** Base14Fonts.cpp ** ** ** ** This file is part of dvisvgm -- a fast DVI to SVG converter ** -** Copyright (C) 2005-2022 Martin Gieseking ** +** Copyright (C) 2005-2023 Martin Gieseking ** ** ** ** 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_Italic_cff; 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; diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.hpp index 4e410fdc61c..8746f593d6f 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/fonts/Base14Fonts.hpp @@ -2,7 +2,7 @@ ** Base14Fonts.hpp ** ** ** ** This file is part of dvisvgm -- a fast DVI to SVG converter ** -** Copyright (C) 2005-2022 Martin Gieseking ** +** Copyright (C) 2005-2023 Martin Gieseking ** ** ** ** This program is free software; you can redistribute it and/or ** ** modify it under the terms of the GNU General Public License as ** diff --git a/Build/source/texk/dvisvgm/version.ac b/Build/source/texk/dvisvgm/version.ac index de7b777843e..3fda0f22dc2 100644 --- a/Build/source/texk/dvisvgm/version.ac +++ b/Build/source/texk/dvisvgm/version.ac @@ -9,4 +9,4 @@ dnl 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]) -- cgit v1.2.3