diff options
author | Norbert Preining <norbert@preining.info> | 2022-01-27 03:00:41 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-01-27 03:00:41 +0000 |
commit | b5deca5ab245af14ca010a3e61225189e9c860f9 (patch) | |
tree | 50f4cfc4a516024350a41166589f283a0d0c1871 /dviware/dvisvgm/src | |
parent | d36626add433e216b29d959884d3593baa216866 (diff) |
CTAN sync 202201270300
Diffstat (limited to 'dviware/dvisvgm/src')
-rw-r--r-- | dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp | 1 | ||||
-rw-r--r-- | dviware/dvisvgm/src/PSPattern.cpp | 2 | ||||
-rw-r--r-- | dviware/dvisvgm/src/PsSpecialHandler.cpp | 8 |
3 files changed, 6 insertions, 5 deletions
diff --git a/dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp b/dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp index 8fba6d8974..9a38ef9b3b 100644 --- a/dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp +++ b/dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp @@ -242,6 +242,7 @@ void DvisvgmSpecialHandler::processRawDef (InputReader &ir, SpecialActions &acti if (_nestingLevel == 0) { string xml = ir.getLine(); if (!xml.empty()) { + evaluate_expressions(xml, actions); expand_constants(xml, actions); _defsParser.parse(xml, actions); } diff --git a/dviware/dvisvgm/src/PSPattern.cpp b/dviware/dvisvgm/src/PSPattern.cpp index 6cebe7844d..3232c88bbe 100644 --- a/dviware/dvisvgm/src/PSPattern.cpp +++ b/dviware/dvisvgm/src/PSPattern.cpp @@ -108,7 +108,7 @@ unique_ptr<XMLElement> PSTilingPattern::createGroupNode () const { // add all succeeding path elements to this group auto group = util::make_unique<SVGElement>("g"); group->setClipPathUrl("pc"+XMLString(psID())); - return group; + return std::move(group); } diff --git a/dviware/dvisvgm/src/PsSpecialHandler.cpp b/dviware/dvisvgm/src/PsSpecialHandler.cpp index aa6c7461dc..66514d1b08 100644 --- a/dviware/dvisvgm/src/PsSpecialHandler.cpp +++ b/dviware/dvisvgm/src/PsSpecialHandler.cpp @@ -287,6 +287,7 @@ bool PsSpecialHandler::process (const string &prefix, istream &is, SpecialAction return true; } + /** Handles a psfile/pdffile special which places an external EPS/PDF graphic * at the current DVI position. The lower left corner (llx,lly) of the * given bounding box is placed at the DVI position. @@ -312,9 +313,9 @@ void PsSpecialHandler::imgfile (FileType filetype, const string &fname, const ma swap(lly, ury); else if (filetype == FileType::PDF && llx == 0 && lly == 0 && urx == 0 && ury == 0) { BoundingBox pagebox = _psi.pdfPageBox(fname, pageno); + pagebox.transform(TranslationMatrix(-pagebox.minX(), -pagebox.minY())); if (pagebox.valid()) { - llx = pagebox.minX(); - lly = pagebox.minY(); + llx = lly = 0.0; urx = pagebox.maxX(); ury = pagebox.maxY(); } @@ -371,8 +372,7 @@ void PsSpecialHandler::imgfile (FileType filetype, const string &fname, const ma _actions->embed(bbox); // insert element containing the image data - if (filetype != FileType::PDF) - matrix.rmultiply(TranslationMatrix(-llx, -lly)); // move lower left corner of image to origin + matrix.rmultiply(TranslationMatrix(-llx, -lly)); // move lower left corner of image to origin imgNode->setTransform(matrix); _actions->svgTree().appendToPage(std::move(imgNode)); } |