summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/svg/svg-extract.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-06-12 21:02:37 +0000
committerKarl Berry <karl@freefriends.org>2020-06-12 21:02:37 +0000
commit9ff0464a3cd368395d86449f9fee922da2f95c9d (patch)
tree580387b3882787e26821358190db4ecec54c2245 /Master/texmf-dist/tex/latex/svg/svg-extract.sty
parent703f0cdf657d1048bc1cd3deb58550a3f2885838 (diff)
svg (12jun20)
git-svn-id: svn://tug.org/texlive/trunk@55527 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/svg/svg-extract.sty')
-rw-r--r--Master/texmf-dist/tex/latex/svg/svg-extract.sty350
1 files changed, 188 insertions, 162 deletions
diff --git a/Master/texmf-dist/tex/latex/svg/svg-extract.sty b/Master/texmf-dist/tex/latex/svg/svg-extract.sty
index cb1c1fa12b3..f42fc92287d 100644
--- a/Master/texmf-dist/tex/latex/svg/svg-extract.sty
+++ b/Master/texmf-dist/tex/latex/svg/svg-extract.sty
@@ -4,39 +4,89 @@
%%
%% The original source files were:
%%
+%% svg.dtx (with options: `package,identify,extract')
+%% svg.dtx (with options: `package,base,extract')
%% svg.dtx (with options: `package,option,extract')
+%% svg.dtx (with options: `package,standalone,extract')
%% svg.dtx (with options: `package,body,extract')
%%
%% svg-extract -- Extract independent graphic files from SVG pictures
%%
+%% ----------------------------------------------------------------------------
+%%
%% Copyright (C) Philip Ilten <philten@cern.ch>, 2012-2016
-%% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2017-
-%%
-%% This file was generated from file svg.dtx.
+%% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2017-2020
+%%
%% ----------------------------------------------------------------------------
-%%
+%%
%% This work may be distributed and/or modified under the conditions
%% of the LaTeX Project Public License, version 1.3c of the license.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of
%% LaTeX 2005/12/01 or later and of this work.
-%%
+%%
%% This work has the LPPL maintenance status "author-maintained".
-%%
+%%
%% The current maintainer and author of this work is Falk Hanisch.
-%%
+%%
%% This work consists of the main source file README.md, LICENSE.md, svg.dtx
%% and the derived documentation svg.pdf as well as the example files
%% svg-example.svg, svg-preamble.tex and root.C (with derived file root.svg).
-%%
-%%
+%%
+%% ----------------------------------------------------------------------------
+%%
\NeedsTeXFormat{LaTeX2e}[2020-02-02]
-\ProvidesPackage{svg-extract}[%
- 2020/05/07 v2.02f\space%
- (extract independent graphics from SVG pictures)%
-]
-\RequirePackage{svg}[2020/05/07]
+\begingroup
+ \catcode`\@11\relax%
+ \def\svg@Provides#1#2[#3]{%
+ \def\@tempa{\def\svg@version{#3}}%
+ \ifx\svg@version\@undefined\else%
+ \def\@tempb{#3}%
+ \ifx\svg@version\@tempb\else%
+ \def\@tempa{%
+ \@latex@warning@no@line{%
+ The version of package `#1' is `#3',\MessageBreak%
+ but `\svg@version' was expected!\MessageBreak%
+ You should update the svg bundle%
+ }%
+ }%
+ \fi%
+ \fi%
+ \edef\@tempb{%
+ \endgroup%
+ \noexpand\ProvidesPackage%
+ {#1}[#3\space(#2)]%
+ \noexpand\RequirePackage{svg}[#3]%
+ \unexpanded\expandafter{\@tempa}%
+ }%
+ }%
+ \svg@Provides%
+ {svg-extract}{extract graphics from SVG pictures}%
+ [2020/06/12 v2.02g]%
+\@tempb
+\edef\svg@catcodecodes@restore{%
+ \catcode`\noexpand\"\the\catcode`\"\relax%
+}
+\@makeother\"%
+\AtEndOfPackage{\svg@catcodecodes@restore}
+\newcommand*\svgx@@ifkeyandval{}
+\newcommand*\svgx@ifkeyandval[3]{%
+ \def\svgx@@ifkeyandval##1=##2=##3\@nil{\IfArgIsEmpty{##3}{#3}{#2}}%
+ \svgx@@ifkeyandval#1==\@nil%
+}
+\newcommand*\svgx@ifinlist[2]{%
+ \begingroup%
+ \def\svg@tempa##1,#1,##2\@nil{%
+ \IfArgIsEmpty{##2}{%
+ \aftergroup\@secondoftwo%
+ }{%
+ \aftergroup\@firstoftwo%
+ }%
+ }%
+ \expandafter\svg@tempa\expandafter,#2,#1,\@nil%
+ \endgroup%
+}
\DefineFamily{SVG}
\DefineFamilyMember{SVG}
\newif\if@svgx@run
@@ -190,8 +240,8 @@
\FamilyKeyStateProcessed%
}
\DefineFamilyKey{SVG}{pdftops}{%
- \PackageWarning{#1}{%
- The option key `pdftops' is deprecated.\MessageBreak%
+ \PackageWarning{svg-extract}{%
+ The option key `pdftops' is deprecated. \MessageBreak%
You should use either `pdftoepsopt' or\MessageBreak%
`pdftopsopt' instead. See the manual for\MessageBreak%
more. Nothing was done%
@@ -224,17 +274,17 @@
\or% gs64
\@svgx@cnv@runtrue%
\renewcommand*\svgx@cnv@cmd{\svgx@gs@cmd}%
- \svgx@onlywindows{%
+ \svg@ifwindowsdetected{%
\renewcommand*\svgx@gs@exe{gswin64c}%
- }%
+ }{}%
\or% gs32
\@svgx@cnv@runtrue%
\renewcommand*\svgx@cnv@cmd{\svgx@gs@cmd}%
- \svgx@onlywindows{%
+ \svg@ifwindowsdetected{%
\renewcommand*\svgx@gs@exe{gswin32c}%
- }%
+ }{}%
\fi%
- \else%
+ \else% legacy option
\def\svg@tempa##1-##2\@nil{%
\IfArgIsEmpty{##2}{\def\svg@tempb{}}{%
\def\svg@tempa##1####1\@nil{\def\svg@tempb{####1}}%
@@ -309,7 +359,90 @@
}%
}
\DefineFamilyKey{SVG}{convertdensity}{\FamilyOptions{SVG}{convertdpi=#1}}
-\newcommand*\svgx@magick@exe{}
+\newcommand*\svgx@cnv@get@dpi[1]{%
+ \begingroup%
+ \def\svg@tempa##1dpi##2x##3dpi##4\@nil{%
+ \edef\svg@tempa{##1}%
+ \@svg@tempswafalse%
+ \Ifnumber{##1}{%
+ \IfArgIsEmpty{##3}{\@svg@tempswatrue}{%
+ \Ifnumber{##3}{\edef\svg@tempa{##1x##3}}{}%
+ }%
+ }{}%
+ \if@svg@tempswa\else%
+ \expandafter\svg@tempb\svg@tempa xx\@nil%
+ \fi%
+ }%
+ \def\svg@tempb##1x##2x##3\@nil{%
+ \Ifstr{##3}{x}{%
+ \@svg@tempswatrue%
+ \IfArgIsEmpty{##1}{\@svg@tempswafalse}{%
+ \Ifnumber{##1}{}{\@svg@tempswafalse}%
+ }%
+ \IfArgIsEmpty{##2}{\@svg@tempswafalse}{%
+ \Ifnumber{##2}{}{\@svg@tempswafalse}%
+ }%
+ \if@svg@tempswa%
+ \edef\svg@tempa{##1x##2}%
+ \fi%
+ }{}%
+ }%
+ \IfArgIsEmpty{#1}{%
+ \let\svg@tempa\@empty%
+ }{%
+ \lowercase{\svg@tempa#1dpi#1xdpi\@nil}%
+ \if@svg@tempswa\else%
+ \let\svg@tempa\relax%
+ \fi%
+ }%
+ \edef\svg@tempb{%
+ \endgroup%
+ \ifx\svg@tempa\relax%
+ \let\noexpand\svg@tempa\noexpand\relax%
+ \else%
+ \def\noexpand\svg@tempa{\svg@tempa}%
+ \fi%
+ }%
+ \svg@tempb%
+}
+\newcommand*\svgx@setformatkey[2]{%
+ \svgx@ifkeyandval{#1}{%
+ \svg@ifvalueisrelax{##2}{%
+ \expandafter\let\csname #2@##1\endcsname\relax%
+ }{%
+ \@namedef{#2@##1}{##2}%
+ }%
+ }{%
+ \svg@ifvalueisrelax{##1}{%
+ \expandafter\let\csname #2\endcsname\relax%
+ }{%
+ \@namedef{#2}{##1}%
+ }%
+ }%
+}
+\newcommand*\svgx@useformatkey[3]{%
+ \scr@ifundefinedorrelax{#1@#2}{%
+ \scr@ifundefinedorrelax{#1}{}{%
+ \expandafter\ifx\csname #1\endcsname\@empty\else%
+ #3\@nameuse{#1}\space%
+ \fi%
+ }%
+ \scr@ifundefinedorrelax{#1@#2+}{}{%
+ \expandafter\ifx\csname #1@#2+\endcsname\@empty\else%
+ #3\@nameuse{#1@#2+}\space%
+ \fi%
+ }%
+ }{%
+ \expandafter\ifx\csname #1@#2\endcsname\@empty\else%
+ #3\@nameuse{#1@#2}\space%
+ \fi%
+ }%
+}
+\svg@ifwindowsdetected{%
+ \newcommand*\svgx@magick@exe{magick}%
+}{%
+ \newcommand*\svgx@magick@exe{convert}%
+}
\DefineFamilyKey{SVG}{magickexe}{%
\renewcommand*\svgx@magick@exe{#1}%
\FamilyKeyStateProcessed%
@@ -324,7 +457,19 @@
\svgx@setformatkey{#1}{svgx@magick@opr}%
\FamilyKeyStateProcessed%
}
-\newcommand*\svgx@gs@exe{}
+\newcommand*\svgx@magick@cmd[3]{%
+ \svgx@magick@exe\space%
+ \svgx@useformatkey{svgx@cnv@dpi}{#3}{-density }%
+ \svgx@useformatkey{svgx@magick@set}{#3}{}%
+ "#1.#2"\space%
+ \svgx@useformatkey{svgx@magick@opr}{#3}{}%
+ "#1.#3"%
+}
+\svg@ifwindowsdetected{%
+ \newcommand*\svgx@gs@exe{gswin64c}%
+}{%
+ \newcommand*\svgx@gs@exe{gs}%
+}
\DefineFamilyKey{SVG}{gsexe}{%
\renewcommand*\svgx@gs@exe{#1}%
\FamilyKeyStateProcessed%
@@ -339,6 +484,13 @@
\svgx@setformatkey{#1}{svgx@gs@device}%
\FamilyKeyStateProcessed%
}
+\newcommand*\svgx@gs@cmd[3]{%
+ \svgx@gs@exe\space-dSAFER -dBATCH -dNOPAUSE\space%
+ \svgx@useformatkey{svgx@gs@device}{#3}{-sDEVICE=}%
+ \svgx@useformatkey{svgx@cnv@dpi}{#3}{-r}%
+ \svgx@useformatkey{svgx@gs@opt}{#3}{}%
+ -sOutputFile="#1.#3"\space"#1.#2"%
+}
\newcommand*\svgx@out@path{}
\DefineFamilyKey{SVG}{extractpath}{%
\svg@sanitize@dq\svg@tempb{#1}%
@@ -367,9 +519,10 @@
\DefineFamilyKey{SVG}{path}{%
\svg@deprecated@key[svg-extract]{path=#1}{extractpath=#1}%
}
-\newcounter{svgx@out@count}
\newcommand*\svgx@out@name{}
\newif\if@svgx@out@sec
+\newcounter{svgx@out@count}
+\newcommand*\svgx@out@sec{unknown}
\DefineFamilyKey{SVG}{extractname}{%
\svg@quotes@remove[{#1}]{\svg@tempb}%
\FamilySetNumerical{SVG}{extractname}{svg@tempa}{%
@@ -460,7 +613,7 @@
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\if@svg@tempswa%
\FamilyOptions{SVG}{extractdistort=false}%
- \else
+ \else%
\FamilyOptions{SVG}{extractdistort=true}%
\fi%
\else%
@@ -530,7 +683,7 @@
\FamilyKeyStateProcessed%
\fi%
}
-\DefineFamilyKey{SVG}{clear}{\FamilyOptions{SVG}{clean=#1}}
+\DefineFamilyKey{SVG}{clear}[true]{\FamilyOptions{SVG}{clean=#1}}
\DefineFamilyKey{SVG}{exclude}[true]{%
\FamilySetBool{SVG}{exclude}{@svg@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
@@ -548,103 +701,15 @@
\fi%
\fi%
}
-\newcommand*\svgx@ifinlist[2]{%
- \begingroup%
- \def\svg@tempa##1,#1,##2\@nil{%
- \IfArgIsEmpty{##2}{%
- \aftergroup\@secondoftwo%
- }{%
- \aftergroup\@firstoftwo%
- }%
- }%
- \expandafter\svg@tempa\expandafter,#2,#1,\@nil%
- \endgroup%
-}
-\newcommand*\svgx@onlywindows[1]{}
-\AfterPackage*{ifplatform}{\renewcommand*\svgx@onlywindows[1]{\ifwindows#1\fi}}
-\newcommand*\svgx@ifkeyandval[3]{%
- \def\svg@tempa##1=##2=##3\@nil{\Ifstr{##3}{=}{#2}{#3}}%
- \svg@tempa#1==\@nil%
-}
-\newcommand*\svgx@cnv@get@dpi[1]{%
- \begingroup%
- \def\svg@tempa##1dpi##2x##3dpi##4\@nil{%
- \edef\svg@tempa{##1}%
- \@svg@tempswafalse%
- \Ifnumber{##1}{%
- \IfArgIsEmpty{##3}{\@svg@tempswatrue}{%
- \Ifnumber{##3}{\edef\svg@tempa{##1x##3}}{}%
- }%
- }{}%
- \if@svg@tempswa\else%
- \expandafter\svg@tempb\svg@tempa xx\@nil%
- \fi%
- }%
- \def\svg@tempb##1x##2x##3\@nil{%
- \Ifstr{##3}{x}{%
- \@svg@tempswatrue%
- \IfArgIsEmpty{##1}{\@svg@tempswafalse}{%
- \Ifnumber{##1}{}{\@svg@tempswafalse}%
- }%
- \IfArgIsEmpty{##2}{\@svg@tempswafalse}{%
- \Ifnumber{##2}{}{\@svg@tempswafalse}%
- }%
- \if@svg@tempswa%
- \edef\svg@tempa{##1x##2}%
- \fi%
- }{}%
- }%
- \IfArgIsEmpty{#1}{%
- \let\svg@tempa\@empty%
- }{%
- \lowercase{\svg@tempa#1dpi#1xdpi\@nil}%
- \if@svg@tempswa\else%
- \let\svg@tempa\relax%
- \fi%
- }%
- \edef\svg@tempb{%
- \endgroup%
- \ifx\svg@tempa\relax%
- \let\noexpand\svg@tempa\noexpand\relax%
- \else%
- \def\noexpand\svg@tempa{\svg@tempa}%
- \fi%
- }%
- \svg@tempb%
-}
-\newcommand*\svgx@setformatkey[2]{%
- \svgx@ifkeyandval{#1}{%
- \svg@ifvalueisrelax{##2}{%
- \expandafter\let\csname #2@##1\endcsname\relax%
- }{%
- \@namedef{#2@##1}{##2}%
- }%
- }{%
- \svg@ifvalueisrelax{##1}{%
- \expandafter\let\csname #2\endcsname\relax%
- }{%
- \@namedef{#2}{##1}%
- }%
- }%
-}
-\newcommand*\svgx@useformatkey[3]{%
- \scr@ifundefinedorrelax{#1@#2}{%
- \scr@ifundefinedorrelax{#1}{}{%
- \expandafter\ifx\csname #1\endcsname\@empty\else%
- #3\@nameuse{#1}\space%
- \fi%
- }%
- \scr@ifundefinedorrelax{#1@#2+}{}{%
- \expandafter\ifx\csname #1@#2+\endcsname\@empty\else%
- #3\@nameuse{#1@#2+}\space%
- \fi%
- }%
- }{%
- \expandafter\ifx\csname #1@#2\endcsname\@empty\else%
- #3\@nameuse{#1@#2}\space%
- \fi%
- }%
+\FamilyExecuteOptions{SVG}{%
+ extract=true,extractpath=basesubdir,%
+ extractruns=2,extractname=namenumbered,extractdistort=false,%
+ convert=magick,convert=false,%
+ gsdevice={png=png16m},gsdevice={jpeg=jpeg},gsdevice={jpg=jpeg},%
+ gsdevice={tif=tiff48nc},gsdevice={tiff=tiff48nc},%
+ gsdevice={eps=eps2write},gsdevice={ps=ps2write}%
}
+\FamilyProcessOptions{SVG}
\newif\if@svgx@standalone
\newcommand*\svgxsetbox[2][]{%
\@svgx@standalonetrue%
@@ -709,15 +774,6 @@
\endgraf%
\endgroup%
}
-\FamilyExecuteOptions{SVG}{%
- extract=true,extractpath=basesubdir,%
- extractruns=2,extractname=namenumbered,extractdistort=false,%
- convert=magick,convert=false,%
- gsdevice={png=png16m},gsdevice={jpeg=jpeg},gsdevice={jpg=jpeg},%
- gsdevice={tif=tiff48nc},gsdevice={tiff=tiff48nc},%
- gsdevice={eps=eps2write},gsdevice={ps=ps2write}%
-}
-\FamilyProcessOptions{SVG}
\DefineFamilyMember[.param]{SVG}
\newcommand*\svgx@param@angle{0}
\svg@local@param@def{%
@@ -1063,7 +1119,6 @@
}%
\fi%
}
-\newcommand*\svgx@out@sec{unknown}
\newcommand*\svgx@get@out@sec{%
\begingroup%
\def\svg@tempa{}%
@@ -1147,39 +1202,10 @@
\fi\fi%
\fi%
}
-\ifx\svgx@magick@exe\@empty
- \ifwindows
- \renewcommand*\svgx@magick@exe{magick}
- \else
- \renewcommand*\svgx@magick@exe{convert}
- \fi
-\fi
-\newcommand*\svgx@magick@cmd[3]{%
- \svgx@magick@exe\space%
- \svgx@useformatkey{svgx@cnv@dpi}{#3}{-density }%
- \svgx@useformatkey{svgx@magick@set}{#3}{}%
- "#1.#2"\space%
- \svgx@useformatkey{svgx@magick@opr}{#3}{}%
- "#1.#3"%
-}
-\ifx\svgx@gs@exe\@empty
- \ifwindows
- \renewcommand*\svgx@gs@exe{gswin64c}
- \else
- \renewcommand*\svgx@gs@exe{gs}
- \fi
-\fi
-\newcommand*\svgx@gs@cmd[3]{%
- \svgx@gs@exe\space-dSAFER -dBATCH -dNOPAUSE\space%
- \svgx@useformatkey{svgx@gs@device}{#3}{-sDEVICE=}%
- \svgx@useformatkey{svgx@cnv@dpi}{#3}{-r}%
- \svgx@useformatkey{svgx@gs@opt}{#3}{}%
- -sOutputFile="#1.#3"\space"#1.#2"%
-}
\newcommand*\svgx@move[3]{%
\begingroup%
\IfFileExists{"#1".#2}{%
- \svg@shell@move{#1.#2}{#3#1.#2}%
+ \svg@shell@mv{#1.#2}{#3#1.#2}%
}{%
\edef\svg@tempa{#2}%
\@svg@tempswafalse%