From f28a23095459f58671af00499975753ca3ed3c6c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 23 Oct 2019 21:39:18 +0000 Subject: svg (23oct19) git-svn-id: svn://tug.org/texlive/trunk@52500 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/svg/README.md | 49 ++++++++++------ Master/texmf-dist/doc/latex/svg/svg.pdf | Bin 1024496 -> 1028970 bytes Master/texmf-dist/source/latex/svg/svg.dtx | 75 +++++++++++++++--------- Master/texmf-dist/tex/latex/svg/svg-extract.sty | 4 +- Master/texmf-dist/tex/latex/svg/svg.sty | 49 +++++++++++----- 5 files changed, 115 insertions(+), 62 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/svg/README.md b/Master/texmf-dist/doc/latex/svg/README.md index fe8f917046a..60a6fffae9a 100644 --- a/Master/texmf-dist/doc/latex/svg/README.md +++ b/Master/texmf-dist/doc/latex/svg/README.md @@ -1,15 +1,15 @@ - svg and svg-extract -- Include and extract SVG pictures in LaTeX documents + svg and svg-extract – Handling SVG pictures in LaTeX documents ---------------------------------------------------------------------------- - Copyright (C) Philip Ilten , 2012-2016 + Copyright (C) Philip Ilten , 2012-2016
Copyright (C) Falk Hanisch , 2017- - svg 2019/10/10 v2.02c + svg 2019/10/22 v2.02d ---------------------------------------------------------------------------- - This material is subject to the LaTeX Project Public License version 1.3c + This material is subject to the LaTeX Project Public License version 1.3c or later. See http://www.latex-project.org/lppl.txt for details. ---------------------------------------------------------------------------- @@ -18,34 +18,45 @@ Summary ------- -The **svg** package is intended for the automated integration of SVG graphics -into LaTeX documents. Therefor the capabilities provided by ***Inkscape***---or -more precisely its command line tool---are used to export the text within a SVG -graphic to a separate file, which is then rendered by LaTeX. For this purpose -the two commands `\includesvg` and `\includeinkscape` are provided which are -very similar to the `\includegraphics` command of the **graphicx** package. +The **svg** package provides an user‑interface for automated integration +of SVG graphics created with ***Inkscape*** into LaTeX documents. +Therefor the capabilities provided by ***Inkscape***—and its command line +tool—are used to export the text within a SVG graphic to a separate +file, which is then rendered by LaTeX. The two commands `\includesvg` and +`\includeinkscape` are provided as central user‑interface, which are very +similar to the `\includegraphics` command of the **graphicx** package. -In addition, the package **svg-extract** allows the extraction of these -graphics into independent files in different graphic formats, exactly as -it is rendered within the LaTeX document using either ***ImageMagick*** or -***Ghostscript*** +In addition, the package **svg-extract** extends the user‑interface of +package **svg** in order to support the extraction of these graphics into +independent files in different graphic formats, exactly as they are rendered +within the LaTeX document. For the creation of these graphics in the +well‑known formats PDF, EPS and PS, LaTeX and possibly conversion +tools shipped with the most LaTeX distributions are used. If the graphics are +required in other file formats, either ***ImageMagick*** or ***Ghostscript*** +can be invoked. Versions -------- +**v2.02d** (2019/10/22) ++ fix bugs with current kernel (2019/10/01) regarding file name parsing, see + https://github.com/mrpiggi/svg/issues/16 ++ use `\filemoddate` with XeLaTeX, see https://github.com/mrpiggi/svg/issues/12 + **v2.02c** (2019/10/10) + fix bugs with current kernel (2019/10/01) regarding file name parsing **v2.02b** (2018/11/12) -+ fix bug for package **tikzscale** which changes `includgraphics` globally ++ fix bug for package **tikzscale** which changes the definition of + `\includegraphics` **v2.02a** (2018/10/17) + fix bug for package **polyglossia** which fakes **babel** poorly **v2.02** (2018/09/08) -+ distortion of included and extracted graphics supported with options `distort` - (or `keepaspectratio`) and `extractdistort` as well as rotation for ++ distortion of included and extracted graphics supported with options `distort` + (or `keepaspectratio`) and `extractdistort` as well as rotation for extractions (`extractangle`) + fixed errors with active double qoutes from **babel** in path arguments + multiple dots within file names possible @@ -72,8 +83,8 @@ Versions + **svg-extract**: enhanced support for ***ImageMagick*** + **svg-extract**: support for ***Ghostscript*** added + package **subfig** not required anymore -+ support of subfigures stopped due to the huge number of packages which deal - with this topic and the large variety of implementing this functionality; ++ support of subfigures stopped due to the huge number of packages which deal + with this topic and the large variety of implementing this functionality; naming exported graphics after their consecutive numbering can't be ensured for all variants of subfigures, so it's neglected diff --git a/Master/texmf-dist/doc/latex/svg/svg.pdf b/Master/texmf-dist/doc/latex/svg/svg.pdf index f186e95d93a..292d4b1b9b5 100644 Binary files a/Master/texmf-dist/doc/latex/svg/svg.pdf and b/Master/texmf-dist/doc/latex/svg/svg.pdf differ diff --git a/Master/texmf-dist/source/latex/svg/svg.dtx b/Master/texmf-dist/source/latex/svg/svg.dtx index 7715e968116..8952e01128a 100644 --- a/Master/texmf-dist/source/latex/svg/svg.dtx +++ b/Master/texmf-dist/source/latex/svg/svg.dtx @@ -1,4 +1,4 @@ -% \CheckSum{3838} +% \CheckSum{3884} % \iffalse meta-comment % % svg and svg-extract -- Include and extract SVG pictures in LaTeX documents @@ -111,11 +111,11 @@ svg-extract -- Extract independent graphic files from SVG pictures \ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{svg.dtx}[% % -%\NeedsTeXFormat{LaTeX2e} +%\NeedsTeXFormat{LaTeX2e}[2019-10-01] %\ProvidesPackage{svg}[% %\ProvidesPackage{svg-extract}[% %<*driver|package&option> - 2019/10/10 v2.02c\space% + 2019/10/22 v2.02d\space% % (include SVG pictures)% % (extract independent graphics from SVG pictures)% ] @@ -260,6 +260,10 @@ svg-extract -- Extract independent graphic files from SVG pictures % \changes{v2.02c}{2019/10/10}{% % fix bugs with current kernel (2019/10/01) regarding file name parsing % }^^A +% \changes{v2.02d}{2019/10/22}{% +% fix bugs with current kernel (2019/10/01) regarding file name parsing, see +% \url{https://github.com/mrpiggi/svg/issues/16} +% }^^A % \ToDo{Workaround for missing \cs{transparent} (Lua\TeX lacks support)}[v2.03] % % @@ -410,9 +414,7 @@ svg-extract -- Extract independent graphic files from SVG pictures % graphic~file either does not exist or the file~modification date of the % SVG~file is newer than that of the exported graphic~file. Thus the % compilation time of the \LaTeX~document can be reduced to the necessary -% minimum. Unfortunately a primitive like \cs{pdffilemoddate} is missing for -% XeTeX, so with this engine, the behaviour will be the same as -% \opt{inkscape}|=|\val{forced}. +% minimum. % \item[forced/force/overwrite] % The \app{Inkscape}~export will definitely be done, any already existing % exported file will overwritten regardlessly. @@ -601,13 +603,8 @@ svg-extract -- Extract independent graphic files from SVG pictures % PDF/EPS/PS/PNG~file (see~\opt{inkscapeformat}) and perhaps a correlating % \LaTeX~file (see~\opt{inkscapelatex}). The export with \app{Inkscape} is only % invoked, if the SVG~file is newer than the exported graphic~file or latter -% doesn't exist at all.\footnote{\ignorespaces% -% Due to the lack of XeTeX to compare file~modification dates, using this -% \LaTeX~engine leads to \app{Inkscape}~exports with every run unless -% \opt{inkscape}|=|\val{false} is used.% -% }% -% Once the export has been done, the graphic~file and maybe the \LaTeX~file are -% included. +% doesn't exist at all. Once the export has been done, the graphic~file and +% maybe the \LaTeX~file are included. % % All previously described options can also be used as optional parameters to % \cs{includesvg} and do have the same effect as described before. However, the @@ -2283,6 +2280,10 @@ svg-extract -- Extract independent graphic files from SVG pictures % \begin{macrocode} \@svg@tempswafalse% \expandafter\IfFileExists\expandafter{\svg@tempa}{% + \expandafter\svg@quotes@check\expandafter{\svg@tempa}% + \if@svg@quotes@found\else% + \svg@quotes@remove{\@filef@und}% + \fi% \@svg@tempswatrue% \edef\@filef@und{\expandafter\trim@spaces\expandafter{\@filef@und}}% \svg@filename@parse[{#1}]{\@filef@und}% @@ -2499,25 +2500,45 @@ svg-extract -- Extract independent graphic files from SVG pictures % \end{macrocode} % \end{macro}^^A \svg@file@missing % \begin{macro}{\svg@iffilenewer} +% \changes{v2.02d}{2019/10/22}{% +% use \cs{filemoddate} with Xe\LaTeX, see +% \url{https://github.com/mrpiggi/svg/issues/12} +% }^^A % The macro \cs{svg@iffilenewer} is used to decide, whether the export with % \app{Inkscape} is necessary due to an updated SVG~file. This can only be -% done, if \cs{pdf@filemoddate} is definied. Unfortunately this functionality -% isn't provided by Xe\TeX. +% done, if \cs{pdf@filemoddate} or \cs{filemoddate} is definied. % \begin{macrocode} +\newcommand*\svg@iffilenewer[2]{\@gobbletwo} \ifx\pdf@filemoddate\@undefined - \newcommand*\svg@iffilenewer[2]{\@gobbletwo} + \ifx\filemoddate\@undefined\else + \ifx\strcmp\@undefined\else + \renewcommand*\svg@iffilenewer[2]{% + \begingroup% + \edef\svg@tempa{\filemoddate{#1}}% + \edef\svg@tempb{\filemoddate{#2}}% + \ifnum\strcmp{\svg@tempa}{\svg@tempb}>\z@\relax% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% + }% + \fi + \fi \else - \newcommand*\svg@iffilenewer[2]{% - \begingroup% - \edef\svg@tempa{\pdf@filemoddate{#1}}% - \edef\svg@tempb{\pdf@filemoddate{#2}}% - \ifnum\pdf@strcmp{\svg@tempa}{\svg@tempb}>\z@\relax% - \aftergroup\@firstoftwo% - \else% - \aftergroup\@secondoftwo% - \fi% - \endgroup% - } + \ifx\pdf@strcmp\@undefined\else + \renewcommand*\svg@iffilenewer[2]{% + \begingroup% + \edef\svg@tempa{\pdf@filemoddate{#1}}% + \edef\svg@tempb{\pdf@filemoddate{#2}}% + \ifnum\pdf@strcmp{\svg@tempa}{\svg@tempb}>\z@\relax% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% + }% + \fi \fi % \end{macrocode} % \end{macro}^^A \svg@iffilenewer diff --git a/Master/texmf-dist/tex/latex/svg/svg-extract.sty b/Master/texmf-dist/tex/latex/svg/svg-extract.sty index a248829e94f..fd29bc5ad96 100644 --- a/Master/texmf-dist/tex/latex/svg/svg-extract.sty +++ b/Master/texmf-dist/tex/latex/svg/svg-extract.sty @@ -31,9 +31,9 @@ %% svg-example.svg, svg-preamble.tex and root.C (with derived file root.svg). %% %% -\NeedsTeXFormat{LaTeX2e} +\NeedsTeXFormat{LaTeX2e}[2019-10-01] \ProvidesPackage{svg-extract}[% - 2019/10/10 v2.02c\space% + 2019/10/22 v2.02d\space% (extract independent graphics from SVG pictures)% ] \RequirePackage{svg}[2017/03/27] diff --git a/Master/texmf-dist/tex/latex/svg/svg.sty b/Master/texmf-dist/tex/latex/svg/svg.sty index 3499c533f69..8d99cb9be7f 100644 --- a/Master/texmf-dist/tex/latex/svg/svg.sty +++ b/Master/texmf-dist/tex/latex/svg/svg.sty @@ -31,9 +31,9 @@ %% svg-example.svg, svg-preamble.tex and root.C (with derived file root.svg). %% %% -\NeedsTeXFormat{LaTeX2e} +\NeedsTeXFormat{LaTeX2e}[2019-10-01] \ProvidesPackage{svg}[% - 2019/10/10 v2.02c\space% + 2019/10/22 v2.02d\space% (include SVG pictures)% ] \RequirePackage{scrbase}[2016/06/14] @@ -611,6 +611,10 @@ \svg@set@input@path[{#3}]% \@svg@tempswafalse% \expandafter\IfFileExists\expandafter{\svg@tempa}{% + \expandafter\svg@quotes@check\expandafter{\svg@tempa}% + \if@svg@quotes@found\else% + \svg@quotes@remove{\@filef@und}% + \fi% \@svg@tempswatrue% \edef\@filef@und{\expandafter\trim@spaces\expandafter{\@filef@und}}% \svg@filename@parse[{#1}]{\@filef@und}% @@ -745,20 +749,37 @@ }{\svg@tempa}% \endgroup% } +\newcommand*\svg@iffilenewer[2]{\@gobbletwo} \ifx\pdf@filemoddate\@undefined - \newcommand*\svg@iffilenewer[2]{\@gobbletwo} + \ifx\filemoddate\@undefined\else + \ifx\strcmp\@undefined\else + \renewcommand*\svg@iffilenewer[2]{% + \begingroup% + \edef\svg@tempa{\filemoddate{#1}}% + \edef\svg@tempb{\filemoddate{#2}}% + \ifnum\strcmp{\svg@tempa}{\svg@tempb}>\z@\relax% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% + }% + \fi + \fi \else - \newcommand*\svg@iffilenewer[2]{% - \begingroup% - \edef\svg@tempa{\pdf@filemoddate{#1}}% - \edef\svg@tempb{\pdf@filemoddate{#2}}% - \ifnum\pdf@strcmp{\svg@tempa}{\svg@tempb}>\z@\relax% - \aftergroup\@firstoftwo% - \else% - \aftergroup\@secondoftwo% - \fi% - \endgroup% - } + \ifx\pdf@strcmp\@undefined\else + \renewcommand*\svg@iffilenewer[2]{% + \begingroup% + \edef\svg@tempa{\pdf@filemoddate{#1}}% + \edef\svg@tempb{\pdf@filemoddate{#2}}% + \ifnum\pdf@strcmp{\svg@tempa}{\svg@tempb}>\z@\relax% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% + }% + \fi \fi \newcommand*\svg@local@param@set[1]{% \svg@local@param@use% -- cgit v1.2.3