texlive[43625] Master: svg (27mar17)

commits+karl at tug.org commits+karl at tug.org
Mon Mar 27 23:47:01 CEST 2017


Revision: 43625
          http://tug.org/svn/texlive?view=revision&revision=43625
Author:   karl
Date:     2017-03-27 23:47:01 +0200 (Mon, 27 Mar 2017)
Log Message:
-----------
svg (27mar17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/svg/root.C
    trunk/Master/texmf-dist/doc/latex/svg/svg.pdf
    trunk/Master/texmf-dist/source/latex/svg/svg.dtx
    trunk/Master/texmf-dist/tex/latex/svg/svg.sty
    trunk/Master/tlpkg/libexec/ctan2tds

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/svg/LICENSE.md
    trunk/Master/texmf-dist/doc/latex/svg/README.md
    trunk/Master/texmf-dist/doc/latex/svg/svg-example.svg
    trunk/Master/texmf-dist/doc/latex/svg/svg-preamble.tex
    trunk/Master/texmf-dist/tex/latex/svg/svg-extract.sty

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/svg/Fig.1a.pdf
    trunk/Master/texmf-dist/doc/latex/svg/Fig.1b.eps
    trunk/Master/texmf-dist/doc/latex/svg/Fig.2.pdf
    trunk/Master/texmf-dist/doc/latex/svg/Fig.2.png
    trunk/Master/texmf-dist/doc/latex/svg/README
    trunk/Master/texmf-dist/doc/latex/svg/example.pdf
    trunk/Master/texmf-dist/doc/latex/svg/example.pdf_tex
    trunk/Master/texmf-dist/doc/latex/svg/example.svg
    trunk/Master/texmf-dist/doc/latex/svg/preamble.tex
    trunk/Master/texmf-dist/doc/latex/svg/root.pdf
    trunk/Master/texmf-dist/doc/latex/svg/root.pdf_tex

Deleted: trunk/Master/texmf-dist/doc/latex/svg/Fig.1a.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/svg/Fig.1b.eps
===================================================================
--- trunk/Master/texmf-dist/doc/latex/svg/Fig.1b.eps	2017-03-27 21:43:48 UTC (rev 43624)
+++ trunk/Master/texmf-dist/doc/latex/svg/Fig.1b.eps	2017-03-27 21:47:01 UTC (rev 43625)
@@ -1,1938 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: TeX
-%%LanguageLevel: 2
-%%DocumentSuppliedResources: (atend)
-%%BoundingBox: 0 0 142 105
-%%HiResBoundingBox: 0 0 141.732 104.389
-%%DocumentSuppliedResources: (atend)
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset xpdf 3.00 0
-%%Copyright: Copyright 1996-2004 Glyph & Cog, LLC
-/xpdf 75 dict def xpdf begin
-% PDF special state
-/pdfDictSize 15 def
-/pdfSetup {
-  3 1 roll 2 array astore
-  /setpagedevice where {
-    pop 3 dict begin
-      /PageSize exch def
-      /ImagingBBox null def
-      /Policies 1 dict dup begin /PageSize 3 def end def
-      { /Duplex true def } if
-    currentdict end setpagedevice
-  } {
-    pop pop
-  } ifelse
-} def
-/pdfStartPage {
-  pdfDictSize dict begin
-  /pdfFillCS [] def
-  /pdfFillXform {} def
-  /pdfStrokeCS [] def
-  /pdfStrokeXform {} def
-  /pdfFill [0] def
-  /pdfStroke [0] def
-  /pdfFillOP false def
-  /pdfStrokeOP false def
-  /pdfLastFill false def
-  /pdfLastStroke false def
-  /pdfTextMat [1 0 0 1 0 0] def
-  /pdfFontSize 0 def
-  /pdfCharSpacing 0 def
-  /pdfTextRender 0 def
-  /pdfTextRise 0 def
-  /pdfWordSpacing 0 def
-  /pdfHorizScaling 1 def
-  /pdfTextClipPath [] def
-} def
-/pdfEndPage { end } def
-% PDF color state
-/cs { /pdfFillXform exch def dup /pdfFillCS exch def
-      setcolorspace } def
-/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def
-      setcolorspace } def
-/sc { pdfLastFill not { pdfFillCS setcolorspace } if
-      dup /pdfFill exch def aload pop pdfFillXform setcolor
-     /pdfLastFill true def /pdfLastStroke false def } def
-/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if
-      dup /pdfStroke exch def aload pop pdfStrokeXform setcolor
-     /pdfLastStroke true def /pdfLastFill false def } def
-/op { /pdfFillOP exch def
-      pdfLastFill { pdfFillOP setoverprint } if } def
-/OP { /pdfStrokeOP exch def
-      pdfLastStroke { pdfStrokeOP setoverprint } if } def
-/fCol {
-  pdfLastFill not {
-    pdfFillCS setcolorspace
-    pdfFill aload pop pdfFillXform setcolor
-    pdfFillOP setoverprint
-    /pdfLastFill true def /pdfLastStroke false def
-  } if
-} def
-/sCol {
-  pdfLastStroke not {
-    pdfStrokeCS setcolorspace
-    pdfStroke aload pop pdfStrokeXform setcolor
-    pdfStrokeOP setoverprint
-    /pdfLastStroke true def /pdfLastFill false def
-  } if
-} def
-% build a font
-/pdfMakeFont {
-  4 3 roll findfont
-  4 2 roll matrix scale makefont
-  dup length dict begin
-    { 1 index /FID ne { def } { pop pop } ifelse } forall
-    /Encoding exch def
-    currentdict
-  end
-  definefont pop
-} def
-/pdfMakeFont16 {
-  exch findfont
-  dup length dict begin
-    { 1 index /FID ne { def } { pop pop } ifelse } forall
-    /WMode exch def
-    currentdict
-  end
-  definefont pop
-} def
-% graphics state operators
-/q { gsave pdfDictSize dict begin } def
-/Q {
-  end grestore
-  /pdfLastFill where {
-    pop
-    pdfLastFill {
-      pdfFillOP setoverprint
-    } {
-      pdfStrokeOP setoverprint
-    } ifelse
-  } if
-} def
-/cm { concat } def
-/d { setdash } def
-/i { setflat } def
-/j { setlinejoin } def
-/J { setlinecap } def
-/M { setmiterlimit } def
-/w { setlinewidth } def
-% path segment operators
-/m { moveto } def
-/l { lineto } def
-/c { curveto } def
-/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
-      neg 0 rlineto closepath } def
-/h { closepath } def
-% path painting operators
-/S { sCol stroke } def
-/Sf { fCol stroke } def
-/f { fCol fill } def
-/f* { fCol eofill } def
-% clipping operators
-/W { clip newpath } def
-/W* { eoclip newpath } def
-/Ws { strokepath clip newpath } def
-% text state operators
-/Tc { /pdfCharSpacing exch def } def
-/Tf { dup /pdfFontSize exch def
-      dup pdfHorizScaling mul exch matrix scale
-      pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put
-      exch findfont exch makefont setfont } def
-/Tr { /pdfTextRender exch def } def
-/Ts { /pdfTextRise exch def } def
-/Tw { /pdfWordSpacing exch def } def
-/Tz { /pdfHorizScaling exch def } def
-% text positioning operators
-/Td { pdfTextMat transform moveto } def
-/Tm { /pdfTextMat exch def } def
-% text string operators
-/cshow where {
-  pop
-  /cshow2 {
-    dup {
-      pop pop
-      1 string dup 0 3 index put 3 index exec
-    } exch cshow
-    pop pop
-  } def
-}{
-  /cshow2 {
-    currentfont /FontType get 0 eq {
-      0 2 2 index length 1 sub {
-        2 copy get exch 1 add 2 index exch get
-        2 copy exch 256 mul add
-        2 string dup 0 6 5 roll put dup 1 5 4 roll put
-        3 index exec
-      } for
-    } {
-      dup {
-        1 string dup 0 3 index put 3 index exec
-      } forall
-    } ifelse
-    pop pop
-  } def
-} ifelse
-/awcp {
-  exch {
-    false charpath
-    5 index 5 index rmoveto
-    6 index eq { 7 index 7 index rmoveto } if
-  } exch cshow2
-  6 {pop} repeat
-} def
-/Tj {
-  fCol
-  1 index stringwidth pdfTextMat idtransform pop
-  sub 1 index length dup 0 ne { div } { pop pop 0 } ifelse
-  pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
-  4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
-  pdfTextMat dtransform
-  6 5 roll Tj1
-} def
-/Tj16 {
-  fCol
-  2 index stringwidth pdfTextMat idtransform pop
-  sub exch div
-  pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
-  4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
-  pdfTextMat dtransform
-  6 5 roll Tj1
-} def
-/Tj16V {
-  fCol
-  2 index stringwidth pdfTextMat idtransform exch pop
-  sub exch div
-  0 pdfWordSpacing pdfTextMat dtransform 32
-  4 3 roll pdfCharSpacing add 0 exch
-  pdfTextMat dtransform
-  6 5 roll Tj1
-} def
-/Tj1 {
-  0 pdfTextRise pdfTextMat dtransform rmoveto
-  currentpoint 8 2 roll
-  pdfTextRender 1 and 0 eq {
-    6 copy awidthshow
-  } if
-  pdfTextRender 3 and dup 1 eq exch 2 eq or {
-    7 index 7 index moveto
-    6 copy
-    currentfont /FontType get 3 eq { fCol } { sCol } ifelse
-    false awcp currentpoint stroke moveto
-  } if
-  pdfTextRender 4 and 0 ne {
-    8 6 roll moveto
-    false awcp
-    /pdfTextClipPath [ pdfTextClipPath aload pop
-      {/moveto cvx}
-      {/lineto cvx}
-      {/curveto cvx}
-      {/closepath cvx}
-    pathforall ] def
-    currentpoint newpath moveto
-  } {
-    8 {pop} repeat
-  } ifelse
-  0 pdfTextRise neg pdfTextMat dtransform rmoveto
-} def
-/TJm { pdfFontSize 0.001 mul mul neg 0
-       pdfTextMat dtransform rmoveto } def
-/TJmV { pdfFontSize 0.001 mul mul neg 0 exch
-        pdfTextMat dtransform rmoveto } def
-/Tclip { pdfTextClipPath cvx exec clip newpath
-         /pdfTextClipPath [] def } def
-/Tclip* { pdfTextClipPath cvx exec eoclip newpath
-         /pdfTextClipPath [] def } def
-% Level 2 image operators
-/pdfImBuf 100 string def
-/pdfIm {
-  image
-  { currentfile pdfImBuf readline
-    not { pop exit } if
-    (%-EOD-) eq { exit } if } loop
-} def
-/pdfImM {
-  fCol imagemask
-  { currentfile pdfImBuf readline
-    not { pop exit } if
-    (%-EOD-) eq { exit } if } loop
-} def
-/pr { 2 index 2 index 3 2 roll putinterval 4 add } def
-/pdfImClip {
-  gsave
-  0 2 4 index length 1 sub {
-    dup 4 index exch 2 copy
-    get 5 index div put
-    1 add 3 index exch 2 copy
-    get 3 index div put
-  } for
-  pop pop rectclip
-} def
-/pdfImClipEnd { grestore } def
-% shading operators
-/colordelta {
-  false 0 1 3 index length 1 sub {
-    dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt {
-      pop true
-    } if
-  } for
-  exch pop exch pop
-} def
-/funcCol { func n array astore } def
-/funcSH {
-  dup 0 eq {
-    true
-  } {
-    dup 6 eq {
-      false
-    } {
-      4 index 4 index funcCol dup
-      6 index 4 index funcCol dup
-      3 1 roll colordelta 3 1 roll
-      5 index 5 index funcCol dup
-      3 1 roll colordelta 3 1 roll
-      6 index 8 index funcCol dup
-      3 1 roll colordelta 3 1 roll
-      colordelta or or or
-    } ifelse
-  } ifelse
-  {
-    1 add
-    4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch
-    6 index 6 index 4 index 4 index 4 index funcSH
-    2 index 6 index 6 index 4 index 4 index funcSH
-    6 index 2 index 4 index 6 index 4 index funcSH
-    5 3 roll 3 2 roll funcSH pop pop
-  } {
-    pop 3 index 2 index add 0.5 mul 3 index  2 index add 0.5 mul
-    funcCol sc
-    dup 4 index exch mat transform m
-    3 index 3 index mat transform l
-    1 index 3 index mat transform l
-    mat transform l pop pop h f*
-  } ifelse
-} def
-/axialCol {
-  dup 0 lt {
-    pop t0
-  } {
-    dup 1 gt {
-      pop t1
-    } {
-      dt mul t0 add
-    } ifelse
-  } ifelse
-  func n array astore
-} def
-/axialSH {
-  dup 0 eq {
-    true
-  } {
-    dup 8 eq {
-      false
-    } {
-      2 index axialCol 2 index axialCol colordelta
-    } ifelse
-  } ifelse
-  {
-    1 add 3 1 roll 2 copy add 0.5 mul
-    dup 4 3 roll exch 4 index axialSH
-    exch 3 2 roll axialSH
-  } {
-    pop 2 copy add 0.5 mul
-    axialCol sc
-    exch dup dx mul x0 add exch dy mul y0 add
-    3 2 roll dup dx mul x0 add exch dy mul y0 add
-    dx abs dy abs ge {
-      2 copy yMin sub dy mul dx div add yMin m
-      yMax sub dy mul dx div add yMax l
-      2 copy yMax sub dy mul dx div add yMax l
-      yMin sub dy mul dx div add yMin l
-      h f*
-    } {
-      exch 2 copy xMin sub dx mul dy div add xMin exch m
-      xMax sub dx mul dy div add xMax exch l
-      exch 2 copy xMax sub dx mul dy div add xMax exch l
-      xMin sub dx mul dy div add xMin exch l
-      h f*
-    } ifelse
-  } ifelse
-} def
-/radialCol {
-  dup t0 lt {
-    pop t0
-  } {
-    dup t1 gt {
-      pop t1
-    } if
-  } ifelse
-  func n array astore
-} def
-/radialSH {
-  dup 0 eq {
-    true
-  } {
-    dup 8 eq {
-      false
-    } {
-      2 index dt mul t0 add radialCol
-      2 index dt mul t0 add radialCol colordelta
-    } ifelse
-  } ifelse
-  {
-    1 add 3 1 roll 2 copy add 0.5 mul
-    dup 4 3 roll exch 4 index radialSH
-    exch 3 2 roll radialSH
-  } {
-    pop 2 copy add 0.5 mul dt mul t0 add
-    radialCol sc
-    encl {
-      exch dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
-      0 360 arc h
-      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
-      360 0 arcn h f
-    } {
-      2 copy
-      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
-      a1 a2 arcn
-      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
-      a2 a1 arcn h
-      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
-      a1 a2 arc
-      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
-      a2 a1 arc h f
-    } ifelse
-  } ifelse
-} def
-end
-%%EndResource
-%%EndProlog
-%%BeginSetup
-xpdf begin
-%%BeginResource: font XYFSSI+CMTI7
-%!PS-AdobeFont-1.1: CMTI7 1.0
-%%CreationDate: 1991 Aug 18 21:07:18
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMTI7) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /XYFSSI+CMTI7 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 73 /I put
-dup 97 /a put
-dup 99 /c put
-dup 101 /e put
-dup 107 /k put
-dup 110 /n put
-dup 112 /p put
-dup 115 /s put
-readonly def
-/FontBBox{-27 -250 1268 750}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846a97b686a97e45a3d0aa0529731c99a784ccbe85b4993b2eebde
-3b12d472b7cf54651ef21185116a69ab1096ed4bad2f646635e019b6417cc77b
-532f85d811c70d1429a19a5307ef63eb5c5e02c89fc6c20f6d9d89e7d91fe470
-b72befda23f5df76be05af4ce93137a219ed8a04a9d7d6fdf37e6b7fcde0d90b
-986423e5960a5d9fbb4c956556e8df90cbfaec476fa36fd9a5c8175c9af513fe
-d919c2ddd26bdc0d99398b9f4d03d77639df1232a4d6233a9caf69b151dfd33f
-c0962cca6faccea6b71beef7c056fbd376f2f0d0bd6be0a0a8259139b28b99c6
-25119b8c60ff7ba002476930dfdc2f6b1b5a80f1c0e544a22e3f0fb2feab64b6
-a509b61e1ab96121fbf7f2bc27cde5b4961048fc2169c8db745fcc7af0eed507
-284038b15ce53e69aa22ca76c2a208f6ad8614cd500d479a5e0fd25e7bb14c7f
-c47c503e4cc38975cb0a8f7e109665fb69ebae6eb68b2d6fa3c967d5bde7830e
-9ce6f13dfaebc852df1d7d0cdd33dd4d5cd6d94dd8ae0d48ab638013cf75a25c
-04fdea8775ec52a13af40fa41f7354624d917ee620318c702237af8c0e1ffa02
-127f862d4dfd0a56774235a881afbb8f7f4bcb33811c581cff38462f669b7f97
-1f97ac09373b8f9b7e653013af8170613e8d7e17235a893be296a0cd2096b71f
-16778388993edf1b003ebce23dd02949cbfaaab5d9f6a08178bfb8ed1043fc1b
-0b90d9afc27b19783740e8dde0e5e01d116a8cb083c721fbb8ebf71018a9570e
-78590cd831116bc0fda4229f79a581874fc3a1f108a4fca80ce27fa54a2a7505
-5bdb3d52e2595512837732322fb5bbe459c0205eb38439e34a39544f0a1567c6
-f29fbb7cf931708c8f92786ccbcbb443d54462b3b4b7bd38e90d325ebc31ba05
-faab393c7ebdb9ec48e4acc15a247d2348a62293a726fca4250b4a407f64270f
-923eb516cb8a3b5d19876c8755eb291357e4e4cc5903d1a536a635e267f7a971
-b1c33aa7f58e1ada931c450ea8367b18e20e683cceec1bc079e837ddafff0d16
-23c4aed0dc04dd9458a630fd498794823ffa55705315f0687e7592a5dfc8b8d6
-fe2f3c6f534f499545704b75da313653bcd0673d7d0b265cbc3baf7034153d4f
-8e157e5732b8a7d8caaa7d8d05d5bf8f14a443597bbba8d2501ef110cb47acb6
-8961fe3bb685aca9b8b35f0cf7a79e7f326427219c8b8a9b80835bdc78a9aff3
-3e9216d1c92e91b4db244ce02a5c9150273d4e3263e7ce0909f2960106f57c3c
-d698212d1e6a29fac15c4ec935d850a119824b79e0fd71aa0a2115064b3da5e5
-8144630ebff91ab0143aef4b663cffc40006fab80a411cc12ddcff2d2ca8be2f
-fc517e3b6748440f56ddf6431702927b0aef906926c5283a80a73e954d495fd1
-d9e4167825a273a8ae0f87d7e102a9fb40dd4bafd6122c6a83d133a9ed7d9a0a
-b45003c94b789bd98b389ea26b7dee99c1e215568e48e577a43ab04052a7f473
-f6b29e05bdb1bfaa6a959cb642245c550cbf84e05b1e4c2f5e7f84ee724b02d0
-cde74b36d98c14b70c48ac51cbec3c595c59692dc5912295337f3313af2ac3ff
-ca3af12d72e48d689572a1a6acb1b2a627da81c28207760abd636444edd87fae
-23dffda052ab54f48690d5a7615d9cd4b6d4010abf3f20ce2603f386e1843911
-733a2cdc76ffa60f0120df68fccc40faf197ce13c5bf34b33d220e5af443b60b
-c2a55c1faee218a97683d32cf6b6a758f82200bbb9419c376f72d9b131376095
-94065de7dc66b571f62ed2ec5bc2df5e25222fecec15880eb0ce939a3c1648b0
-7f323286ca79f0364d0747939a1a89d3eaccafb732c7e2415374034caa1b8d6d
-361f03c941ad5bbbb5831ad371fbfab81fd106714aeb6509ff8d0a8ad5002691
-3869faedfe9c3581e6bd5ed17f4fed5b847354d752ae435cec8443dbb48df400
-425a7902aaaaade7c10f275f18dc2103297049f7a337fb0b75b24ebf007e1f9a
-b7a847cb4791ed9bbd376c8a6bb2137185a5f13bfb4b3ca845898811aaf0dc58
-2e5eb07b1a20354264ee70f7a7a8f26d8e1ee1da9cd5d15719716d45ae696cc3
-da6bb5f492e66345c2708c1112cabd7d073658296e13abef28df9a682b877c9e
-f42c3c0329b041b7c44e84bbf0932dd40e6e4015b6ae58571b0fb87d970376a2
-a0ff6953d106314ec0aaef3ee6f985f619f8c0520451ed54ecf38ab6e6ba4176
-b0f38261165e3c81ed3f107778024970f4edc4ea89ec88ab92d388c35ea7128d
-e0075558146c76fd2e380f2f8e04742dd1e6aef770be18ba87f8ed83170ed6d1
-7a56f6b21ae7be6d20e40443196d165f7d50b59b0ef0cfeb161b7540ba6a47fa
-1059c0138beea849df7224e57f74f5c3af34fe57dbeb91efded832ae5451b831
-388563febd9b1f5f31042c0c4a60f562bdcb6b1043bad1b3f21c9eb33b3d1505
-28efd3d74e912fee04513fcd24cf8e9d19dd5d5a69aeb46c3e3051aa38c06fb1
-bfa941c25083771a7769613d4d90da7d1f76409163ce0311a30a735c8becc8cb
-239241e2887f764729410248a2ca0791cb44e97fbae93f04fa36ebb62833c699
-52f248d0037eafecd3dd9b2884ce78a7101837e5573aa89d40d4d031134a4de5
-e23ea1878e4ad8ee84892523dbbb76b8a2308dfc89f5115f14825d96d8b7f7f9
-8697ee25a09e682c5b56612a37b5da8760ffedb9451cc2a1dcf7f1b51c4e97f6
-ef198969173712e26033ae1c4d41b46432baa2372d4add2e0498478877d180b2
-5e7f870e71e250e24aea49a2721cb5b453e3afd46d7b6ba99a385031212bdd92
-b653a000059557b795daf4d900ec98c7ebb00a123cc120ff0dece28c18a105a3
-c6d310c2bf4364f202d2104098f93d1a0914021b0c213b5a2b3885e0d931f58d
-224a601f16dee9a2df3adb67fbbea6aa999cb131b1f47426b074cc0be23e25cf
-eb92877266e3ac20bc453aeeae31502cbc8e6480d59aa2b1b4b0aebc23dc8023
-c02f6ed2318fcbee64300dfee0072cfe57b35a491238516735bacaff8be3249b
-f97d070731cd80407d1f4c3ae077935417bab3f431a5ae8fc9cca3a2c82b086a
-82def5e5d4064914d3653ed1a1550ef1d65d8d7ae9213cf08d1468c197d568e8
-82af3ddc226563e8db072a36e989ca8e38690247abcab4c7765c37a74f18505b
-3253a684571b8dc984cd45e8a5f96ea68bb1865dbc1e514a01da4458df0e945b
-3a18c3bded02c644a3cdbdc996c86780e8446d3e0b2a89a377f2cb0e003df225
-66eb734cffaae3e0d90df0dfc3245efcd52e372b1c6af303d27bd0e1a824e8af
-2f55e05d63001637d035caa7d31cd07fbda6f0d3d40868ddde21df1b4d1453df
-aa49171b6e81598c53efa49f2a63a3a7ce5dcd8667014bbc30d0fa9782192c06
-7827cf55881d72daef6db5bcc87a39457574eefe614f876ea8135fb4700188d5
-8f3d9270081f158283f627cd3d94adf1c41f7a606d6ef516de755858f9909fb2
-14b705472017cb2914f0efda
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/F5_0 /XYFSSI+CMTI7 1 1
-[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/I/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/a/.notdef/c/.notdef/e/.notdef/.notdef
-  /.notdef/.notdef/.notdef/k/.notdef/.notdef/n/.notdef
-  /p/.notdef/.notdef/s/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef]
-pdfMakeFont
-%%BeginResource: font QRFNIX+CMR5
-%!PS-AdobeFont-1.1: CMR5 1.00B
-%%CreationDate: 1992 Feb 19 19:55:02
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.00B) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMR5) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /QRFNIX+CMR5 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 70 /F put
-dup 84 /T put
-dup 90 /Z put
-dup 97 /a put
-dup 98 /b put
-dup 100 /d put
-dup 101 /e put
-dup 61 /equal put
-dup 53 /five put
-dup 52 /four put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 107 /k put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 57 /nine put
-dup 111 /o put
-dup 49 /one put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 50 /two put
-dup 117 /u put
-dup 48 /zero put
-readonly def
-/FontBBox{-341 -250 1304 965}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891
-016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171
-9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f
-d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758
-469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8
-2bdbf16fbc7512faa308a093fe5cf7158f1163bc1f3352e22a1452e73feca8a4
-87100fb1ffc4c8af409b2067537220e605da0852ca49839e1386af9d7a1a455f
-d1f017ce45884d76ef2cb9bc5821fd25365ddea1f9b0ff4cff25b8e64d0747a3
-7cad14e0dba3e3ca95f10f24b7d5d75451845f1fb7221d7794a860756cfbb3e7
-704a52a22448c34812c3dbedd41892577aaba7d555e9298c1a0f7da638078167
-f56e29672683c51cf1c003764a8e7ad9d8ade77b4983f56fe2d12723aad8bf36
-682cfbb71b1d12210144d39dd841a971f71db82ac6cd815987cdcf29abc3cc96
-5eebd5d661f452c6e0c74f9ed8d0c5b3755551a172e0fe31ea02344176e32666
-14b6853a1c303a5e818c2e455a6cf8fc9a66dc6e279101d61c523bd9db8eb82f
-eaf4d7fdf6372383c0794c4568d079648689a199d4b65ba646cf95b7647e4bec
-83856c27a8ef177b3a686eda6354fe9573e123c12ec4ba56a7e8bfb8f9b75147
-9dd79a743968f36f7d0d479fa610f0816e6267e5ce327686a5485ab72201525c
-fb3b7ca10e1bf26e44c24e1696cb089cb0055bd692c89b237cf269f77a31dc81
-0f4b75c8400abcfdcec6443cd0e81871cd71aa3064abde882c4c52322c27fa8b
-41c689f827fb0f8aaf8022cf3c1f41c0b45601190c1328831857cbf9b1e7d1aa
-246117e56d6b7938488055f4e63e2a1c8d57c17d213729c68349fec2c3466f41
-171e00413d39df1f67bc15912f30775afdf7fb3312587e20a68cf77ad3906040
-842d63c45e19278622dd228c18abdd024dd9613cdc0b109095db0adc3a3c0cb5
-ab597d490189ea81239e39202cbc7a829eb9b313a8f962f7879d374adf529bd0
-5533ef977142f647ad2f5975ba7e340419116099b19acccc37c55124d25c8b43
-2de7c5683ad4c789e9cda4d508ca9b16f2552ed86ac06f051212bf0267244829
-84de3739fdcd764159289b0cc586d66fea7751aab1dd7909a42c67bb916cd288
-1202148cd0319ca10ec2a0ea5a222a3d9cb6308410e5591f7fa1d1585c1a1aa9
-8f343bfff143cddb91f41f02db52b67579bae62cccdf77c01595edb7c922bc2e
-8642bee95c6f8a0b7175b6f1442f18e4d6e889c534159e942421183f4ce14ff8
-b1cb84a0205dc43616093d3ed4535096e33923a3a468bda64515ba9a04e91dc9
-5327216df2cb00239952119aa384cdf13e062076f31222c8a61f1c99927738ca
-e9e78f91d8a4c4fdd27f1e3ba8b3f2b9e0226b0570bbd844deac73859514dc85
-2cd6e701600cf1ad6f463b875fc4980879e16cbb58438d5efbfc0dde453c5533
-dbb86504f1ca80d8820a563b5863b82953abeafb5e154b109737510afce23094
-6cf310f7c157356cae3d1a89c3f29d9c066329ed9c21198bc33b9186779cad33
-ea82e9e9e8c6b30b2adfb8ba95a36aa0c66b5f2e4a4dc8a5602371df8be295e9
-d225ebb317f1c0044fcc82eedfe7525969e1a33e32ba0c78d7bcda6f3414052c
-56443fe4fcaa7f02d48b59a471a1c093fbcc45afbf572df6f6b9cacff888a8a6
-4c325b2b942d516ec032834165faf117ba72b01a902f00315ea3c09dfbd45c49
-e6f6feac4472280a2fbff531617932ad7b2b183bbc59490ce69456874b9158f7
-0d652a73c9533e1109481e21fef07ce4d43fc07dfa3f6c7ea058a9061da35859
-d0dc3db6ffa64a896eb7be5e87bfa8cf5ddea43aa890bd15ef19cfb7fe4cb244
-d07b115e4a64a09cfc8022b6d212f920cb0ce5581dec47bb14b81f81ea984efc
-a20d9af50e1ca1dceec50921a939180062481ddce266a1a418a834c322bdcc25
-4301e5f9bbbc8095b39cf7e5137697a6950a4a7896079f092e0102cb2d07fd33
-884afb693659047fd8fb01208f0fbb1cea985bd1f4260257e08e08be5114314b
-c26662d63ef6209277dea2bb654db883be61a680e7fb472a8c698dd1accfddf4
-21e365e8f6da21f203a62ab2c4b43a4380a31e1ced21d0cf5f4ecf153371e0b2
-6becbca5884eb396e133613fb6c4cfd4e3fb13346bd4967180dbce9c9978f4ad
-2529d21889367ed56bdf2c36db68304203dd1c57f5a6fd1f83f3d24d804d6ac7
-2745eb909eef9619fbb27bb19c8cc0596eaf5a3ad1303c5e26144c063e89db27
-4509bb03bc85f0cf4d4b4778629b97cfb7012d047d1acb6a5d6763d41979aae2
-7e3c585cb512be758108529a91ae5edf1967cddb1f95d0641a53c30f297a01f4
-999c2f8bdda6eca8fa06d9eaf6a45ce3df5778d4f0c46e00f68494466a2b494a
-8785968659259c897babe03aa39fefb2668c21033aa260069aec27eba786bbbd
-3e78ac967719736722b5cbf5a101299c325f65b8dfd6a77b1d4c8f5408361e04
-232a89774e6c981f27e7c8da7bf819ca6b0a9b9370c9c831c9f1ec8bc9917c83
-35a383d822d9dc41614bd59376aebecce2a4be03a08bd93096c1f383972a1e37
-f86fafc6b39c9d5d9282b4df315ac2446ab1027802cf1d157191b19d1e3c5052
-ad5e0296acaebd9e7044f523ff92a71a436676466040eaa7352ffa5fbdce8d28
-13d9af3f88940535098f0e0644f6ef8e6fe5d8846126a9082dee75e504cbea32
-ef08cea73ccae9dc3ab6268784228fbb3f5937dea2c7628d527f0ba641fdcd9d
-8561093a61c7c8f6bd604ecdd62cfd611be8cbd37edd1c9cd258548c21c2ec35
-142b3b9e723577d6def57be5917b2beabc016eb129cd5ef62c378fbfe5562138
-f3569921279a44ae991a98ee1b4275a976b2e84f341d256effae7496ca1159f4
-812c51e8a19b0756c1071ff7b5949852a7086e75b064f518c6e1660b2b44fe16
-09525127162d679b603f28e6904475609daeecbdd4df5196089a206d0f9985f2
-623a5913aa116470bbbd1686cd7f2b7e719fc9b0652d76ba4a76bbdce34ceffb
-b15b52431d6538b629d77c7e844e584d70588c29f1c1d63e467a80d5e26b8a8e
-a5863fc25e927a2a3323e17598aa1264bfa54cb4e853fb2d97e4bf90e66a991f
-327240b6b7841a2c23041e017fa4b42e2503f67523a0c19da45da01129c9a5e1
-f512a59ff33c0aab13fc4c02a65ef11e28e919926a2a6b962194edd028788832
-64998b3f00d44c15c59cb47585b9ca668e681f25a4301e80bedaa985e815018e
-e05d5e175d9cb9628fbd458092dd5fe11d5e2e753de9a755dd55d1f13801876f
-409f603a60a83c795608ba34cc0fbafe8fa07c9de4e7b78b7a7b692a3abcf62a
-c83e75b8bdadddd9385ad65b4eab95f6800f111c7bc6b8bd68f50375ef9df202
-4e6bfedfcd9c473dfccfb8b72528c4dfa3eac7cfc782ec7309cd148e4b7c1924
-f5b443783a0245842efeaf6bfa53a5ce269985396d6bacdfe62a4dc5e7a7f34c
-9257d6d8669eb88258b99f4ea2b494d4b2dd7e88e81d270cdbc03c36823d6b7c
-8ed16883092c9163869f25f7847c9e2d495ac21f11f5406fe570f589e7cdd13e
-82adfb3a061875bc3e2b846c1a78333c6830670810bd7c23d5e3d5b4e2a74207
-5cdadb6e332e615073eaba1523e4c7f399307b43cc9be6460955607e3e4184d7
-3f75328b88edac3a6d663bfdf367f951b32c120ee221fb52a2112e2ef0bc64a1
-67e6ce17ae4272b9839e052c646b70ff65e7d6e8bc7ca4bac2121de47de227db
-8380adb5a65d9bfd890acfaab6c7cc26f417e23472e05a74364e229325bca32a
-095b398e5e731e5ab8e92b948b3a368a6cc491ae173a6a1c2484f0943e581858
-25429e9d93ad7e70906c3dc223a7a274266e5d790e06774a8dbc1a8acba4c432
-081658dc71c55ab633ed8c369e64a4183b3414ce2364b30214a93c80f51400ad
-e0333d3d0648031134ce44aaef21ef73cef77810a491c05ba8509122a4ef9941
-82ba9991283ca78de50760d7addf9664485c0657a08fe1421b44c2d9bb9ddf0f
-7955a3aa8d474f93ce5628e9f3ec88db68d4856709bb36a41a742980279bd70b
-fd1f0e6dd3f5892c4267513e8229f6aed69b2ff17d134a548330d922c8f5aad4
-1b8d906800bc0d1e0e6acc313f9f4ed86cf0057b2e44d9e971b156b845b40174
-47852de3c9981482c835e9e692329e026a5073ae74d4c59840bd0b40f9bf3e31
-0ea6f53e47965af08c77027dbb1685f0b72471a7a480b893671d8be0637d2107
-66de6e746bbc563e69ea2cfecc0ef0c91c5199e3a2a46168a11565c2752e2778
-353e51e6dc377b924e041a1fc9ff4ffce25ca896a1963168b227ec3baca4c83f
-5385f52e4a6996c90c83a33dcf2ab7400d7f96b4d0c35a546ea183a9b87cc236
-8935398088199a585885911dc6bc8d5c8b6a135da1a5b5c7ac4742deb253c100
-cf40f0f2f603b36c53d4734cb966181ff9bbe61c7ffd8e579f4f9d96b78b2b48
-f077b6dcf987ba03fac13c029062d446ef07aa27aaed38b4cadad944ab755abd
-4a5836f94d3fb09bbd54ac64263f3203b6b301b747fc34715997150532425b4d
-c5480c50016114c2f36ce167fce159b8732ca3e0f8d6a1185a793f2c4cf3f7a1
-cbac44e981dc02048aeabddeb8bb2387ba608b90c6ce8efb67d17eaadc7474af
-446a97d1dcf002364b7232f40992f21b3db8949fea626b8deb57a6298818d4a5
-06e8d1d3753a730e674de5aa639496b85422ba1071533009065fff02bd51ea3a
-42687fd464d7004d0a79fde9c4c9e9a861c0557cf1d007b002e46c8dab226ab1
-96e46e193d354a76e7488402aa833435bb7a91388a3a812349fb14ffb002349e
-ce53af989e4c32025c6296fcc3ef3e4b5cf5304a8701499011053b35bc7d049c
-0bba2e4dfc4f4aea3d11192d526df6a3c3dcf27d66d24e865dfa4c2d49133809
-21c3c5a6c15d263b4dae7b367d4e655870b9887bef55a2d9d66326305f44b2f8
-57738499bd1f55c91b38f0fce0239b2343451dc084e8fbb56ac1578449652756
-ccac510001de0ccf7ca41e57ad078976b7b95f4d4d488c6a88e6cedf2a35ee24
-9042b18069920513845c86d94f286866a89d8beae3c9569fa62b812c4b5a4a3f
-ec457d5b71806ac9d5a3e689046baa7e81fcd74372447ba4867ffc86b982af1d
-9f843253b04b54165f42464d2d5c47ebfcee9a42cecd3f101db285262fae9731
-37c046c0cdbd546a875aa6a9743ec5faccc41562613180f2e95e0936c0caa2f6
-8c70ec97036c718617d92be2974c6d177a01939039c5e6c9eaed0d86ef223e91
-3ce48391bd33ab03d0375c8b497617165b7a99fc03e1d4df08fa2a960b8a7891
-5f0d99b5de833411e3b69810beb86c6bb5faad366eebe9921d68a512a3be5899
-994ce902e9c6523035ab1a709b7c6e81fb7674b993ed3c874958d41d53b5bc50
-158a319764078a6e05328e509ed56b2e402a51762b7d8560a70283fcddd7a4e4
-d36f379164029e6b6e0b93942fe7a323ffb7704f568d2b780dec775c73fa5595
-e60372bebb0f3ace7aec82a53f9f9fd8233c874e02e82c18dfcdf6e182cfe9dc
-c88cd49c9cf7b60294666fc97b5bdfb37590e077424bfb0f3a01e90d697c83e0
-7ade85364db8a50bbb5c9e58b61cbc2d3c07457ef2c3a991cdead367b578ba2e
-e3d6e2229c72f0d6ec033fd4c0f9cd6b2e27f673cfc2eaeb9fdc70e0dbdb0c8d
-25955330b6371f8f7c98455eaea615cdf341869e3ac90999eaa6000224506702
-7497ba7a8778aab912eacd184c0b1261c0cc18d86429afbe1f28377569b6e08d
-1ab20c1b3fa3988027d19d48b7154892cd9c42a3989803b4935eb4c37ce93f05
-48a792cf502ab0b3399b78fbfec425b16ad49f30a361df03b341079fb17e9d7b
-8649571fa9f7b8f5c0590514e97b7059e30d5edc48b324a9660bbafc0d811c7b
-0435ed1d034f50f1a96f1d0e130beb5beb3c1d2428f7713571b5cd78be570aab
-82bfa57371d836dfaf023d6bb7d1e4eeb0375606f5048bae6ec78077c4abb566
-d3dabe4947da86cd9ed93b738b0dfec36de56ae15d226a535d801c91d01f4b8e
-e9b9e5e4d6937b183134cfe3ae38bd6e392cf210e9ddf88c38e39a880efded5e
-9c4702bca2dcf785af0bff75cbedf7717e13c9d5ccc5553ca4d16a0563537409
-577d4d64db40d7da1f16026974fda3e16c5d5c49cf957d392d38dac4a1727dd6
-dae9a4df8822180d609000bf68606fa4760b14aa9eea5cc81fd2dc909c69348c
-a20c546da3f1c70768c395fc1a3068c985605ef265e132658c06205aadeb1fba
-13f816b226488cc435c5e19f30bbf2617bf86ed784b2b7e39ad0ae8400f5dffa
-1f264ed85824de721d2678b3b4175378cbffcfdfd511642cc7e4680d85c128e9
-4b505d7dd11c240119573305b90ef3e9cadfc751d25dc7b32986afb243c676ac
-17194295c564253cf885222396dab284d724f14097d343c9cc7b4b563fd0d9bb
-d0da6d5eba2e3d9bc1723611b5336386a1599d6c898b79556ec264f72818e999
-ee3a6dac9f7aede093609c683d8af0b64341f4f5fe40afe64b548f3c7393b460
-601bd7a645fb0dbd437221c05bea5a22faf36effa07e02b5796a37de06be84b6
-65ffaadf9100fb120d32ab58bd11d6d921d94b544ac6b23cc8e0041b2612e797
-459b0c2893be0f1d4b314ad41bd4c869263887dddb0c0024144e6917484a0abe
-da7e9a011a9e600d4c4213173c169035a50edd4d378da41fca8dd1d1345a0de4
-3e5e530db0c92402b2c8c685eb85b18e66d21df5b30c1b86a794ec151f0551c1
-ba7d026e774ce77f3e24ac1e3b9f6efc12b2f89e7ebd90520362241d89c7c977
-ea4a4c134b17552e0f8a0cd059b4928185e0e8c4c9b9c52029ae0f97d3d43d55
-f6bc7b5f05aedd574b05dce3bb7524d664fda854ba93719fb006feeb7f181486
-2d14eab6c749050a5e3af7fdd40f2c84f2df0ffe7872dfb3e8026cbedb0156f2
-550ec45a933acb54768ae8e54b9d7ec53bc131cd1e82612d7f5a4fbcd392083d
-71ba0458c66937279da6ed39bd01d4195517a3975bb911dcfa1a549007e4c9f9
-89a08d42b6be1e1aab8efcaca21788eab44abeb9ad1b5cdda5
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/F6_0 /QRFNIX+CMR5 1 1
-[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /zero/one/two/.notdef/four/five/.notdef/.notdef
-  /.notdef/nine/.notdef/.notdef/.notdef/equal/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/F/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/T/.notdef/.notdef/.notdef
-  /.notdef/.notdef/Z/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/a/b/.notdef/d/e/.notdef/g
-  /h/i/.notdef/k/l/m/n/o
-  /p/.notdef/r/s/t/u/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef]
-pdfMakeFont
-%%BeginResource: font KCZGMI+CMMI5
-%!PS-AdobeFont-1.1: CMMI5 1.100
-%%CreationDate: 1996 Aug 02 08:21:10
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.100) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMMI5) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /KCZGMI+CMMI5 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 107 /k put
-dup 110 /n put
-dup 120 /x put
-dup 121 /y put
-dup 122 /z put
-readonly def
-/FontBBox{37 -250 1349 750}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846a97b686a97e45a3d0aa06da87fc7163a5a2a756a598fab07633
-89de8bb201d5db4627484a80a431b6afdbbbf23d4157d4afe17e6b1c853dd417
-25f84cd55402ab88ab7eefdedbf2c2c731bd25567c53b474ccf739188a930039
-098a197f9c4be7594d79442b2c8a67447de44698321145d7689b91ef235ea80e
-b600aa8e238064f154284096c4c2554efe8ddf13aff8d3ce30e0999375c0fee6
-f992dea5fc3897e2cc8b7a90238e61e41622de80f438dd994c73275cc52249d9
-f6686f87f394fb7bb668138b210bec9e46415a1b58c990b81e7d7dd301143517
-4c2a259d2a0a1e200f8101469c10d7d537b0d4d39296a9ab3f132da9a3b459b0
-f850e2b3a03bdcb35aef82285d19c38f474fb414f8ec971b994d1c7dd753b271
-2b71549df497c665df0f266988209d9eb616e4d9ba229ff984e7a886db01fd21
-48ed2e4859fd6416c2ce52537464ea884c8c9c2d1083e2b83be4b766474c23b6
-6e8ec5003200ab10514bb44d14ca700416ab6b2683e80862e7d5b49a05526a32
-554bb23ab8b0824bba198e3825ce82380cc0fecf46651e3e5d77f09465e73164
-20342822f29572bc7f73f2c3bf95ed3bb6fdeadc20c6ac866c4f2c679594d7e8
-8d944704a3c5d771dc39503becab89f34d8cdb8fdb91afe21f3f0260d05e90c5
-73e2c13dfa022c4522e5918ee25038a0498fbb530da33b0ae238b1c6ed03fc04
-2bfed8236e07820c5bab411eae1b31d93a2fa7c374b1725fec359abcb88e2c89
-214529a263d795aacb0b95a3ab2f4e08ef350c282ce521716dbb06e5b8291b3f
-5d4aca230fa192f64bc902a4c8842c0f916f92fbd002add408bf0401d0284fbb
-f05d4c6db631420747cc902c5e1617e6573612fb26c8378df41ffb5048d3cf06
-4893dba48ef4b043d760f60c75712169d16c83ee020c45369e443e853e1809dd
-f395b812067d6fdbd26111b34f42c21036af952d0d767fd17f6959d9fdd46005
-d64fff54772b50bb9b173ae79702981f58f9f235c591f476a31852174df0619c
-a470359153dc32610e782b204e7945515464dace9099b81eeecc7ebd4b5126af
-c3fd9ddfb329af1c95c41fa4a5f6958869509a23bd7210386329771fa46ff926
-0e54ac35106253ee140449425a8670e1f92b178a02a58eb57540f4bd8110e548
-bb584ea6d625c5f5fe0124a98e49915f1a1b95d2125874360eed1c4379fef3c6
-90e5780c20309f11f2f23fad635c44ba030b39eff083a3eccdd2641dc82d3b44
-b3ab94eca6ceaeff2f4dbb525a310c86946b11105b41f9493cd689b1e11922b7
-219e1f7ba65e2e2ccc6015fd19d921ce9dc268f03d897868790e231255c90036
-86f55e6f1b4877adb855eb6210050bcbb279b58ef95ffdf0e5a5a3eacb53240b
-dc7954bea3f762feda04b8d0921502bb112129f7538eeb89f2700842f0d290ae
-27e0dd3a8ce35dde516d4a28f78a0308650ffd050d64893c20cca605af49ef60
-07f9a5cbb02fc52ac7f53e825a9faa83281d393fbcfc1889c9809f8b3edf40b6
-e2f95c684b42c206318455d6b07daa05aa9d9307754221c7b8c1d79f6ce91a98
-6b05c7b2a6dbbad0d02fe68d35a484ec3b7a2bcb3310354aa8e5c78200fcd408
-856ea93a1a62a7e039937f753e068ad70842fdb71716c00634e88b3c0dfe1962
-7d9c51333edb72cea21c8a02ab0a405693a6c6b0f8b7eab4ba25d153bfa29e82
-bc55d484b5c7ebb0cad4d037adec25d7df65b06cf8d80a6a164e8874e01c47b9
-5e9e7656790d8d5fea7121a216aa76ff81bf1bed4c7f0819795475b8fbbe254d
-060fe03aa8f76874d6691f47bce43ce4413c80bf30cbdae5932ee97c98bbe397
-987268a8ba1f0853dfbfeb9cd1bd98123d0577e478e35bb92ad65ef02a913581
-9061558f9ba4085efaab90fa797612a4c14fa119b9bc095bbb5c3174de026066
-2e9840008e8c468c200cb650c90ecc9e1e06dfdc66a8734301f10ef0c08ed94f
-c2b5a85981b10a41b99cf844a812240e1fc3cdd57dc70f8f19371bafbd556fe0
-76f4dee202085f4da73192f5288cd95fbda78515ee60d97f117791691bacfa94
-897efca3987c68cbd4522a30323b386e7c02165737e5ecf901e4a8d2486b90d9
-23b65cb41ed420dce5c54d7be60c3c35a3c6605ee19cb2b55c6d80fced88ae68
-e31f4371d6a20bbcc0109387ef8bfef9ed384cbb5cf4a463f8ad79d8d11218c1
-bef0a6909c1e572017eadaab30387de66b90f7fd89ad2179ce4b7ca2dcf59b01
-2d3d53de2bdd4d73633b71db0b529167b31d3de40330094ab2baa53febfb9f0e
-c37d2cd0a824a1c29b612485e9b12ccf2e06f9794ed0ed08030f6b3907fe1916
-521c015b7814a88c88535653667551ad028df3331575d2ef4cce98d96af85d20
-bf1550ed932c6445a5aa2e1fadc6c90cb7a875c84e8d8ba06a21fdfc6d08ac26
-2a04a8342fbeadf0ecb6f20ffd6242004357d97dadc7758a9289b63ad83ffff6
-3e30ca707a3a4173d74a40cc65ecb7db5bcd0e46187b0a1ee03494b92c5354b2
-36c46b713712247b503f744c2c1a76ebfd060587a74c3d6569345ae4a707fc5e
-8caa10ccd1711c6c60a909ef393d840149f83ab66bab9f738f4cd2996fc2eab7
-d60468fe3ed8beb50ca3c6a045f174567217a772b18ff39cd3da7f92e6f5c5b9
-b483601e2a7ec42e4c859162e3f55e7d6b4e894f5dc905dec6bdd3a2452eb786
-226610d7ac2d8747cc479f143cb61b511a4e791ed7c45b3058b919ab5985d6bc
-bfd3219ad2c1a8eb32ce27742375514f718a246858e3ca13ca0488dc81c11939
-88ed4880bbe669eea349e48aead5e53f458ac0b35629745b11c581e0134d13d5
-8838bffc332c04c30fe39e88c4131a73a05295ecbd11b99fc9744a6fc78671ce
-b26638aeb0ca40633d0e3294fc48911889b48287b6f37344aee41067d61164a2
-1a21c80a963d4c316c4ee0680fc4c7ab862e6d6d9b5db0b7fd28b9cef3a9d43f
-47aa94805fcfd188c08d6e04a6872d6713224961d1a387bb909a3ef7181b455c
-be4fc2359c0d06f54977a78c376fc1f195827080bb59b61271229973b1c22b1f
-8582c765e2346cea929124a8fcafc128a3895b8f48900362a5e1dd164f12d454
-894fa78ca4aa5a21c60696ca2a0ced7f4b98fb43269c0445521cf4fc73bd2464
-9a4dc573c98e5ab0370a0c67057bca09
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/F7_0 /KCZGMI+CMMI5 1 1
-[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/k/.notdef/.notdef/n/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /x/y/z/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef]
-pdfMakeFont
-%%BeginResource: font ZITESQ+CMSY5
-%!PS-AdobeFont-1.1: CMSY5 1.0
-%%CreationDate: 1991 Aug 15 07:21:16
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMSY5) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.035 def
-/isFixedPitch false def
-end readonly def
-/FontName /ZITESQ+CMSY5 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 33 /arrowright put
-dup 49 /infinity put
-readonly def
-/FontBBox{21 -944 1448 791}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846a97b686a97e45a3d0aa052f09f9c8ade9d907c058b87e9b6964
-7d53359e51216774a4eaa1e2b58ec3176bd1184a633b951372b4198d4e8c5ef4
-a213acb58aa0a658908035bf2ed8531779838a960dfe2b27ea49c37156989c85
-e21b3abf72e39a89232cd9f4237fc80c9e64e8425aa3bef7ded60b122a52922a
-221a37d9a807dd01161779dde7d5fc1b2109839e5b52dfbaf552b11effb6a16c
-f03fb920c15ae724efdf0ccbf00a838d34440ff9fed532f44036ad22561184c5
-283722ddfa7285e62754372d716d704ac0e00b2f6ab67154241c7449aa047833
-94cedb08e8c92907fe72a0b05ae36a7b9226acd6e7890a0b528fdde84a950fc6
-801de75cf2e739e9121149ccb8b1c87a106822648d84a3d3fbf295ee6c4bf403
-bbe9a1c1f6daedd1e642acc486e609703d7612bffd10c324f5dc710811f7f614
-3691b400e3773987424c0d2b0d8a736873c6371ddb2442f05e018a2b5ca9a4aa
-17aabb95d09e5890cfffed5ac01495d89a53d3c9ad5a9c23d5050e53ad0edbcb
-74cfd3e229777bb8781fe5ed007f9871d38795a64f1c3fc995bcadbdc26105df
-c3791eabd25d9b3dacaa96fbbeb11397e2e1f8ef6b27f15b2e998ed79189f382
-9810144fbbca77ee3f8c02aaedabbc5d1f0b5fb00e06458289545e6c4520aaf0
-a79ac842d6f93252acf4cd7bcf5ba0816321e2ae79ab933383d3c86b180ff1e0
-36209671dbef6acca494b10524f9a7fadb18563987df48c4656da73fcc6f7675
-e773317fca8f725ddbf9dfaf5151ce9a18e02b7fe6ec205ca7eeac7078720fe9
-a77988c3df66720a6c9335e19482f0a845ae35e75f11562fc7bf36d79b339223
-58b261f64e078d8022dcead31ac7ab1f2d032144c00e5cdb6dcc1d75881d3df1
-eb739a6a1b255636b08ae11593eb14ae9f6b94372457571651b6359ee83dafd8
-1fdd27eca478494d2ae4c767d1fa866c562a3c20fe2126adb506355b0765f7a3
-4605c0653837eb7bd73611e4cdb80ba5dfe199fe0f764516f316ec16bf9ad53b
-b98f3ada1e31ef3a36079493f943eebb9ce5534a8cf84d7e924c9e2b892ada07
-278daa3976f47c6c00b46bd73b5e423d69527ca16883c654993579e117c7ebea
-e9a840968c20594bb3f48bec62ba54176f8e7931ff99ec57b09a037b88d3e6
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/F8_0 /ZITESQ+CMSY5 1 1
-[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/arrowright/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/infinity/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef]
-pdfMakeFont
-%%BeginResource: font LBWBDW+CMEX10
-%!PS-AdobeFont-1.1: CMEX10 1.00
-%%CreationDate: 1992 Jul 23 21:22:48
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.00) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMEX10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /LBWBDW+CMEX10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 80 /summationtext put
-readonly def
-/FontBBox{-24 -2960 1454 772}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891
-016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171
-9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f
-d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758
-469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8
-2bdbf16fbc7512faa308a093fe5cf5b8cac6a7beb5d02276e511ffaf2ae11910
-de076f24311d94d07cacc323f360887f1ea11bdda7927ff3325986fdb0abdfc8
-8e4b40e7988921d551ec0867ebca44c05657f0dc913e7b3004a5f3e1337b6987
-febc45f989c8dc6dc0ad577e903f05d0d54208a0ae7f28c734f130c133b48422
-bed48639a2b74e4c08f2e710e24a99f347e0f4394ce64eacb549576e89044e52
-eabe595bc964156d9d8c2bab0f49664e951d7c1a3d1789c47f03c7051a63d5e8
-df04faac47351e82cae0794aa9692c6452688a74a7a6a7ad09b8a9783c235ec1
-ea2156261b8fb331827145de315b6ec1b3d8b67b3323f761eaf4c223bb214c4c
-6b062d1b281f5041d068319f4911058376d8efba59884ba3318c5bc95684f281
-e0591bc0d1b2a4592a137ff301610019b8ac46ae6e48bc091e888e4487688350
-e9ad5074ee4848271ce4acc38d8cbc8f3db32813ddd5b341af9a6601281aba38
-4a978b98483a63fcc458d0e3bce6fd830e7e09b0db987a6b63b74638fc9f21a5
-8c68479e1a85225670d79cdde5ac0b77f5a994ca700b5f0ff1f97fc63efde023
-8135f04a9d20c31998b12ae06676c362141aaaa395cdef0a49e0141d335965f2
-fb4198499799ceccc8aa5d255264784cd30a3e8295888efbc2060addd7bac45a
-eeeecdff7a47a88e69d84c9e572616c1ac69a34b5f0d0de8ee4edf9f4ade0387
-680924d8d5b73ef04ead7f45977ca8ad73d4dd45de1966a3b8251c0386164c35
-5880dd2609c80e96d1ab861c9259748e98f6711d4e241a269ed51ff328344664
-3af9f18dce671611db2f5d3ea77ee734d2bed623f973e6840b8dad1e2c3c2666
-dd4dd1c1c8384f906a7baacdf441bb0aaea2a697e453d89e61340d3a13f615ef
-1519bfec00780aa739ca4bbfd4bf4df2e631623030c8343d7b84d3333d9eb1c7
-b8f7b8e4b2300015f84581ef1adeb8927320ff8d70138f099c8a4cfa5cdd00c9
-7028808e83dc31a07859bf1fb09e75461041b1d7fbcd67127398bf4ccf1f5b0d
-aca653b6ad3b88aff1852e266f413d704a55e5ca7093acaa6030e39d8f94cc01
-40cc496ff70c94384f50b409e147096fb2a369342aada452f853c4bdb343aca4
-e9f832281381689ca3dcc8c79e7c15a60690f64eed769738b307224c6bb711f8
-4c6145a710444c68df56753e307ccf3eb1157145e10a4f552917bb024f732948
-0cc4af63bf2bba2e43c5f0fe9f03505ebe36c22119fc77127ee189423efb7b71
-85a7b4fa2414a5451dc6b2
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/F9_0 /LBWBDW+CMEX10 1 1
-[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /summationtext/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef]
-pdfMakeFont
-%%BeginResource: font NMQKLO+CMBX5
-%!PS-AdobeFont-1.1: CMBX5 1.0
-%%CreationDate: 1991 Aug 20 16:35:12
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMBX5) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /NMQKLO+CMBX5 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 63 /question put
-readonly def
-/FontBBox{-40 -250 1483 756}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891
-016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171
-9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f
-d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758
-469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8
-2bdbf16fbc7512faa308a093fe5f068f48fd40da38a480ecd24c95aa52d1eb8d
-502e7d1e35b648c712f04a3f32986a7d18d3c6d4ac7333184c6d44bdf95915a2
-d64839372f2a0eff251b92139518c8bfb733c1db4b64fcc4671ecc1a9449d442
-f7c1a1c352aa77e522b8a5a7318ab1f49f6f047fd17e71a0c6d6c60a7aeab52f
-acef9c20fe28b5e3e70f44baecaf535674eb33af0cad919f2398de641d94c026
-f0edb2bed4c3bccf5e6e5a9dd4a841a660d86b2f0f5fb264f6d76e1e38da6730
-1acd0ec8592584babdeab88e2774b4e8bc60607ca8246a070c8e7f9e54d1742c
-6197b85c606b2388d93e3738e0a1feb314a89d61a001b5deb93bff543714623d
-e7bb928ae0f16120af220c9c6a5aa1488e1112b810910a9985f63fe46ad1de40
-6c0729362a33538005464d7021f521f8d694a7ebb7e5ee96f28a5232bc5e5dc7
-76cb198dac299dbd399dea79136f3d3a2e0d71014b74522685d59ec157b50996
-1a336950a916c603eab7a2f389b6922f8cd61188950fbc871b9248e2735176a4
-b32e00db4c68064bd43d66448090085c54f799267d517b036c9967c985d397c7
-d035d988c844bb77778330efecba432e16624c0bf61b57c5f16921b819084b09
-b761421484dd7a3470cfed1cfee500282579a7d52fed688c11b6479db5008dbc
-6ae39544dbb9fd9952541d8a24a8bcbf9650f2c0d2fe44aff9b9167d7c65e168
-41a0ca8969259abbac0ab3727e1bf348928ae422af55f334d25af14528a3711c
-06273b79fbc520330b4f7592ae1ac0dc4634e24b21202783def88e7d5d477462
-2cdd2373a78a3d82aefcf49ffdfdb76a9f085962f96017b703f3f54d8989e323
-c54c4cc3fafa0e66617816cabc334df56118c03a4def8f527684ad30c9b35493
-12c0178d348873a626842970d2a8660c82951ef653618245709a41955b2cd343
-0e6c08318db68640b9813efc09f40403b5da127f2b741b659e384b4bdc264e70
-c6eb003870f0f9a1ed4d40166db6d2c1beab30b9872f4071f5ead05172ba3c52
-281019bbfd8d34a6a505b816273159e6edbcf550bfdd1aabd28ebeffcb02269c
-561af4fc5a3e29e24416023a81f6dcead3ae15dc703242524b035737bcf2691c
-7c3f48b0ce0ffe9043f9b3284428ad2398efe958c4b27b7b73076bd211420c08
-05d209f4277df231df615279712312216948165c15481bde439f241341fd6d29
-a53774546749566c2d7fdad3226e2d94f0704bfcd8c6838e461370262f6df79f
-2e5d911fa0ff7e7d768de61aeb6c06a3bc8000f4219763a2b639984d0c2eb064
-28878bc8007baf55d2f388dad3d522b2d5a32fa6615f39c1778b78f5ab95ebb7
-0763404a937a7556478f8a
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndResource
-/F10_0 /NMQKLO+CMBX5 1 1
-[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/question
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef]
-pdfMakeFont
-%%EndSetup
-pdfStartPage
-[] 0 d
-1 i
-0 j
-0 J
-10 M
-1 w
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-false op
-false OP
-{} settransfer
-q
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-[1 0 0 1 0.708 1.047] cm
-q
-[0.6603 0 0 0.6603 0 0] cm
-q
-[1 0 0 1 0 0] cm
-q
-[1 0 0 1 0 0] cm
-0 0 212.525 156.525 re
-W
-q
-/DeviceRGB {} cs
-[0 0 0] sc
-72.684 137.412 m
-80.711 108.744 37.551 98.517 47.832 63.166 c
-f
-192.324 73.892 m
-182.941 52.916 162.43 34.298 148.684 20.556 c
-f
-/DeviceRGB {} CS
-[1 0 0] SC
-0.8 w
-0 J
-0 j
-[] 0 d
-4 M
-q
-[1 0 0 -1 0 156.525] cm
-0.395 0.398 211.727 155.727 re
-S
-Q
-/DeviceRGB {} CS
-[0 0 0] SC
-q
-[1 0 0 -1 0 156.525] cm
-173.637 38.398 m
-173.637 63.598 l
-S
-Q
-/DeviceRGB {} cs
-[0.4 0.4 0.4] sc
-23.195 5.81 69.84 4.121 re
-f
-/DeviceRGB {} cs
-[0.702 0.702 0.702] sc
-10.059 59.81 28.246 74.539 re
-f
-/DeviceRGB {} CS
-[0 0 0] SC
-0.4 w
-q
-[1 0 0 -1 0 156.525] cm
-66.484 135.801 m
-69.652 136.258 l
-69.926 133.934 70.434 131.668 71.156 129.477 c
-68.191 128.477 l
-68.191 128.477 67.969 129.551 66.781 130.414 c
-66.188 130.844 65.582 130.496 64.988 129.965 c
-64.395 129.438 63.82 128.73 63.234 128.559 c
-62.652 128.383 61.996 128.504 61.445 128.848 c
-60.891 129.188 60.438 129.754 60.27 130.422 c
-60.098 131.09 60.23 131.801 60.562 132.363 c
-60.891 132.922 61.422 133.332 62.023 133.445 c
-62.629 133.555 63.465 133.195 64.238 133 c
-65.008 132.805 65.711 132.766 66.078 133.398 c
-66.805 134.664 66.484 135.801 66.484 135.801 c
-h
-68.191 128.477 m
-71.156 129.477 l
-71.875 127.285 72.805 125.164 73.918 123.117 c
-71.172 121.637 l
-71.172 121.637 70.766 122.66 69.453 123.301 c
-68.797 123.621 68.266 123.176 67.777 122.555 c
-67.285 121.938 66.84 121.148 66.297 120.879 c
-65.754 120.609 65.098 120.613 64.504 120.855 c
-63.91 121.094 63.379 121.562 63.109 122.184 c
-62.836 122.801 62.848 123.512 63.078 124.113 c
-63.305 124.715 63.746 125.203 64.312 125.414 c
-64.875 125.629 65.742 125.43 66.523 125.375 c
-67.305 125.32 67.996 125.406 68.234 126.086 c
-68.715 127.438 68.191 128.477 68.191 128.477 c
-h
-71.172 121.637 m
-73.918 123.117 l
-75.031 121.074 76.328 119.102 77.781 117.215 c
-75.266 115.316 l
-75.266 115.316 74.695 116.277 73.285 116.711 c
-72.578 116.93 72.125 116.398 71.734 115.707 c
-71.344 115.016 71.02 114.164 70.523 113.809 c
-70.023 113.457 69.367 113.359 68.746 113.5 c
-68.121 113.645 67.527 114.023 67.168 114.594 c
-66.809 115.16 66.711 115.863 66.844 116.492 c
-66.977 117.121 67.336 117.672 67.855 117.977 c
-68.379 118.281 69.266 118.227 70.047 118.301 c
-70.828 118.375 71.496 118.574 71.621 119.281 c
-71.871 120.699 71.172 121.637 71.172 121.637 c
-h
-75.266 115.316 m
-77.781 117.215 l
-79.234 115.324 80.844 113.516 82.578 111.793 c
-80.305 109.547 l
-80.305 109.547 79.598 110.441 78.117 110.68 c
-77.379 110.801 77 110.203 76.703 109.457 c
-76.406 108.707 76.199 107.809 75.746 107.383 c
-75.293 106.957 74.652 106.77 74.008 106.82 c
-73.367 106.875 72.723 107.168 72.285 107.684 c
-71.414 108.707 71.547 110.398 72.5 111.16 c
-72.977 111.543 73.871 111.621 74.641 111.812 c
-75.41 112 76.055 112.297 76.074 113.023 c
-76.113 114.484 75.266 115.316 75.266 115.316 c
-h
-80.305 109.547 m
-82.578 111.793 l
-84.316 110.07 86.184 108.438 88.148 106.895 c
-86.133 104.359 l
-86.133 104.359 85.309 105.18 83.789 105.238 c
-83.027 105.27 82.723 104.621 82.516 103.832 c
-82.309 103.043 82.211 102.113 81.809 101.629 c
-81.004 100.664 79.305 100.574 78.301 101.484 c
-77.301 102.395 77.223 104.105 78.078 105 c
-78.508 105.445 79.395 105.645 80.145 105.938 c
-80.895 106.227 81.504 106.605 81.43 107.344 c
-81.277 108.82 80.305 109.547 80.305 109.547 c
-h
-86.133 104.359 m
-88.148 106.895 l
-90.117 105.348 92.188 103.898 94.332 102.543 c
-92.582 99.789 l
-92.582 99.789 91.668 100.527 90.137 100.422 c
-89.367 100.367 89.133 99.684 89.016 98.867 c
-88.895 98.055 88.898 97.113 88.547 96.582 c
-87.848 95.527 86.156 95.242 85.051 96.035 c
-83.949 96.824 83.672 98.527 84.434 99.523 c
-84.812 100.023 85.68 100.328 86.398 100.707 c
-87.117 101.09 87.688 101.539 87.527 102.273 c
-87.199 103.738 86.133 104.359 86.133 104.359 c
-h
-92.582 99.789 m
-94.332 102.543 l
-96.477 101.188 98.695 99.93 100.961 98.777 c
-99.496 95.867 l
-99.496 95.867 98.512 96.516 96.996 96.258 c
-96.238 96.129 96.074 95.422 96.035 94.598 c
-96 93.773 96.098 92.836 95.801 92.277 c
-95.207 91.152 93.555 90.691 92.375 91.359 c
-91.195 92.027 90.742 93.691 91.395 94.77 c
-91.723 95.309 92.555 95.707 93.234 96.164 c
-93.914 96.617 94.441 97.125 94.199 97.844 c
-93.723 99.277 92.582 99.789 92.582 99.789 c
-h
-99.496 95.867 m
-100.961 98.777 l
-103.23 97.621 105.543 96.57 107.879 95.625 c
-106.711 92.629 l
-106.711 92.629 105.68 93.18 104.207 92.781 c
-103.473 92.582 103.375 91.867 103.418 91.051 c
-103.461 90.234 103.645 89.32 103.406 88.742 c
-102.926 87.578 101.336 86.957 100.105 87.496 c
-98.875 88.035 98.266 89.637 98.809 90.766 c
-99.082 91.332 99.867 91.812 100.5 92.328 c
-101.129 92.848 101.598 93.398 101.293 94.086 c
-100.68 95.465 99.496 95.867 99.496 95.867 c
-h
-106.711 92.629 m
-107.879 95.625 l
-108.609 95.332 109.34 95.047 110.074 94.773 c
-111.566 94.227 113.117 93.789 114.715 93.445 c
-114.031 90.324 l
-114.031 90.324 112.969 90.688 111.598 90.102 c
-110.91 89.809 110.898 89.098 111.047 88.305 c
-111.199 87.512 111.512 86.637 111.359 86.035 c
-111.207 85.434 110.758 84.93 110.172 84.629 c
-109.586 84.328 108.855 84.238 108.188 84.445 c
-107.598 84.629 107.098 85.035 106.773 85.527 c
-106.391 86.141 106.27 86.898 106.508 87.551 c
-106.738 88.172 107.562 88.754 108.145 89.367 c
-108.613 89.855 108.922 90.367 108.699 90.918 c
-108.68 90.957 108.66 90.996 108.637 91.039 c
-107.91 92.336 106.711 92.629 106.711 92.629 c
-h
-114.031 90.324 m
-114.715 93.445 l
-117.035 92.941 119.449 92.629 121.918 92.441 c
-121.672 89.246 l
-121.672 89.246 120.543 89.461 119.262 88.668 c
-118.621 88.27 118.727 87.566 118.996 86.801 c
-119.266 86.035 119.703 85.219 119.641 84.598 c
-119.578 83.977 119.219 83.41 118.695 83.02 c
-118.176 82.633 117.488 82.426 116.816 82.523 c
-116.141 82.621 115.535 83.012 115.137 83.535 c
-114.738 84.055 114.547 84.703 114.66 85.309 c
-114.773 85.914 115.402 86.57 115.867 87.223 c
-116.328 87.879 116.625 88.531 116.156 89.102 c
-115.223 90.242 114.031 90.324 114.031 90.324 c
-h
-121.672 89.246 m
-121.918 92.441 l
-123.234 92.34 124.566 92.273 125.906 92.234 c
-127.094 92.207 128.293 92.199 129.512 92.199 c
-129.516 89 l
-129.516 89 128.34 89.129 127.133 88.211 c
-126.531 87.754 126.715 87.062 127.059 86.332 c
-127.398 85.598 127.902 84.828 127.898 84.203 c
-127.891 83.047 126.859 81.973 125.656 81.855 c
-125.566 81.848 125.473 81.844 125.379 81.844 c
-124.059 81.875 122.895 83.105 122.965 84.34 c
-122.996 84.961 123.535 85.691 123.914 86.398 c
-124.293 87.109 124.512 87.789 123.973 88.301 c
-122.895 89.324 121.672 89.246 121.672 89.246 c
-h
-129.516 89 m
-129.512 92.199 l
-132.117 92.207 134.789 92.258 137.535 92.25 c
-137.523 89.047 l
-137.523 89.047 136.316 89.184 135.113 88.242 c
-133.91 87.301 135.926 85.492 135.934 84.246 c
-135.938 83 134.816 81.84 133.57 81.828 c
-132.324 81.816 131.148 82.969 131.141 84.207 c
-131.129 85.441 133.055 87.254 131.91 88.215 c
-130.766 89.176 129.516 89 129.516 89 c
-h
-137.523 89.047 m
-137.535 92.25 l
-139.398 92.242 141.297 92.207 143.227 92.109 c
-144.141 92.07 145.062 92.008 145.984 91.926 c
-145.691 88.73 l
-145.691 88.73 144.457 88.973 143.18 88.109 c
-143.117 88.066 143.062 88.02 143.012 87.969 c
-142.633 87.586 142.719 87.047 142.934 86.465 c
-143.234 85.656 143.777 84.754 143.73 84.066 c
-143.684 83.344 143.273 82.68 142.719 82.254 c
-142.312 81.949 141.832 81.766 141.336 81.785 c
-140.156 81.828 139.066 83.004 139.082 84.238 c
-139.09 84.855 139.578 85.605 139.934 86.324 c
-140.285 87.039 140.508 87.727 139.941 88.223 c
-138.812 89.215 137.523 89.047 137.523 89.047 c
-h
-145.691 88.73 m
-145.984 91.926 l
-148.863 91.664 151.77 91.207 154.645 90.492 c
-153.883 87.387 l
-153.883 87.387 152.68 87.82 151.289 87.141 c
-150.598 86.801 150.68 86.082 150.883 85.301 c
-151.086 84.52 151.398 83.672 151.27 83.062 c
-151.145 82.453 150.758 81.922 150.277 81.562 c
-149.793 81.203 149.215 81.012 148.656 81.102 c
-148.098 81.191 147.602 81.555 147.254 82.047 c
-146.906 82.543 146.707 83.172 146.777 83.785 c
-146.852 84.402 147.406 85.098 147.836 85.773 c
-148.266 86.449 148.57 87.105 148.059 87.664 c
-147.031 88.781 145.691 88.73 145.691 88.73 c
-h
-153.883 87.387 m
-154.645 90.492 l
-157.246 89.848 159.824 88.992 162.348 87.895 c
-162.609 87.777 162.871 87.656 163.133 87.531 c
-161.781 84.637 l
-161.781 84.637 161.504 84.805 161.031 84.922 c
-160.562 85.031 159.91 85.09 159.168 84.887 c
-158.422 84.68 158.379 83.957 158.438 83.152 c
-158.492 82.352 158.637 81.461 158.398 80.887 c
-158.156 80.312 157.688 79.863 157.16 79.594 c
-156.633 79.328 156.051 79.242 155.535 79.418 c
-155.023 79.598 154.613 80.031 154.363 80.57 c
-154.113 81.109 154.02 81.758 154.188 82.352 c
-154.355 82.945 155.008 83.547 155.539 84.141 c
-156.07 84.73 156.48 85.328 156.062 85.961 c
-155.227 87.227 153.883 87.387 153.883 87.387 c
-h
-161.781 84.637 m
-163.133 87.531 l
-165.855 86.242 168.418 84.715 170.824 83.008 c
-168.965 80.41 l
-168.965 80.41 168.008 81.254 166.465 81.137 c
-165.695 81.074 165.512 80.379 165.41 79.582 c
-165.312 78.785 165.289 77.883 164.941 77.367 c
-164.598 76.848 164.047 76.5 163.473 76.344 c
-162.898 76.188 162.301 76.219 161.828 76.5 c
-161.355 76.777 161.043 77.285 160.902 77.863 c
-160.766 78.438 160.805 79.09 161.09 79.637 c
-161.371 80.188 162.125 80.645 162.766 81.121 c
-163.406 81.598 163.926 82.098 163.645 82.801 c
-163.078 84.207 161.781 84.637 161.781 84.637 c
-h
-168.965 80.41 m
-170.824 83.008 l
-173.227 81.297 175.469 79.41 177.559 77.395 c
-175.328 75.086 l
-175.328 75.086 174.512 76.059 172.969 76.18 c
-172.199 76.242 171.902 75.582 171.676 74.809 c
-171.453 74.031 171.293 73.137 170.871 72.676 c
-170.027 71.754 168.473 71.617 167.609 72.348 c
-167.18 72.711 166.945 73.277 166.902 73.879 c
-166.859 74.48 167.012 75.121 167.387 75.613 c
-167.762 76.102 168.594 76.418 169.305 76.777 c
-170.02 77.137 170.621 77.543 170.465 78.285 c
-170.152 79.766 168.965 80.41 168.965 80.41 c
-h
-S
-Q
-Q
-Q
-Q
-Q
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-[1 0 0 1 -0.708 -1.047] cm
-[1 0 0 1 0 0] Tm
-0 0 Td
-90.27 95.653 Td
-/F5_0 4.9813 Tf
-(Inksc) 13.4067 Tj
-59 TJm
-(ap) 6.0094 Tj
-58 TJm
-(e) 2.7123 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[1 0 0] sc
-/DeviceRGB {} CS
-[1 0 0] SC
-118.817 21.74 Td
-/F6_0 4.9813 Tf
-(red) 9.4784 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-[1 0 0 1 3.928 11.514] cm
-q
-[0.7071 0.7071 -0.7071 0.7071 0 0] cm
-[1 0 0 1 -3.928 -11.514] cm
-[1 0 0 1 0 0] Tm
-0 0 Td
-3.928 11.514 Td
-/F6_0 4.9813 Tf
-(45) 6.7805 Tj
--472 TJm
-(graden) 19.9949 Tj
-[1 0 0 1 3.928 11.514] cm
-Q
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-[1 0 0 1 -3.928 -11.514] cm
-[1 0 0 1 0 0] Tm
-0 0 Td
-66.754 85.875 Td
-/F6_0 4.9813 Tf
-(lim) 9.4784 Tj
-76.233 84.879 Td
-/F7_0 4.9813 Tf
-(n) 4.3875 Tj
-80.62 84.879 Td
-/F8_0 4.9813 Tf
-(!1) 13.5601 Tj
-95.901 92.102 Td
-/F9_0 9.9626 Tf
-(P) 10.5165 Tj
-106.417 89.639 Td
-/F7_0 4.9813 Tf
-(n) 4.3875 Tj
-106.417 81.641 Td
-(k) 3.7763 Tj
-110.274 81.641 Td
-/F6_0 4.9813 Tf
-(=1) 8.5101 Tj
-123.878 87.805 Td
-(1) 3.3903 Tj
-q
-[1 0 0 1 121.7 87.12] cm
-[] 0 d
-0 J
-0.398 w
-0 0 m
-7.745 0 l
-S
-Q
-[1 0 0 1 0 0] Tm
-0 0 Td
-121.7 81.846 Td
-/F7_0 4.9813 Tf
-(k) 3.7763 Tj
-125.557 83.313 Td
-/F6_0 4.9813 Tf
-(2) 3.3903 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-16.708 98.118 Td
-(This) 13.2488 Tj
--472 TJm
-(Figure) 19.1855 Tj
-53.847 98.118 Td
-/F10_0 4.9813 Tf
-(??) 7.1531 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-110.09 68.815 Td
-/F6_0 4.9813 Tf
-(o) 3.3903 Tj
--35 TJm
-(o) 3.3903 Tj
--34 TJm
-(o) 3.3903 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 1] sc
-/DeviceRGB {} CS
-[0 0 1] SC
-109.852 9.071 Td
-(blue) 12.5225 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 1 0] sc
-/DeviceRGB {} CS
-[0 1 0] SC
-115.432 16.139 Td
-(green) 15.9128 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-16.021 7.605 Td
-(aligned) 21.3095 Tj
--472 TJm
-(on) 7.1262 Tj
--472 TJm
-(baseline) 23.696 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-[1 0 0 1 7.35 81.51] cm
-q
-[0 -1 1 0 0 0] cm
-[1 0 0 1 -7.35 -81.51] cm
-[1 0 0 1 0 0] Tm
-0 0 Td
-7.35 81.51 Td
-/F6_0 4.9813 Tf
-(90) 6.7805 Tj
--472 TJm
-(degrees) 21.6896 Tj
-[1 0 0 1 7.35 81.51] cm
-Q
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-[1 0 0 1 18.648 -27.494] cm
-q
-[0 1 -1 0 0 0] cm
-[1 0 0 1 -25.998 -54.016] cm
-[1 0 0 1 0 0] Tm
-0 0 Td
-25.998 54.016 Td
-/F6_0 4.9813 Tf
-(90) 6.7805 Tj
--472 TJm
-(degrees) 21.6896 Tj
-[1 0 0 1 25.998 54.016] cm
-Q
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-[1 0 0 1 -25.998 -54.016] cm
-[1 0 0 1 0 0] Tm
-0 0 Td
-115.349 74.183 Td
-/F6_0 4.9813 Tf
-(o) 3.3903 Tj
--35 TJm
-(o) 3.3903 Tj
--34 TJm
-(o) 3.3903 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-104.832 63.961 Td
-(o) 3.3903 Tj
--35 TJm
-(o) 3.3903 Tj
--34 TJm
-(o) 3.3903 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-72.872 75.953 Td
-/F7_0 4.9813 Tf
-(x) 3.9437 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-79.137 73.063 Td
-(y) 3.6393 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-85.881 69.449 Td
-(z) 3.4306 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 0] sc
-/DeviceRGB {} CS
-[0 0 0] SC
-[1 0 0 1 70.962 49.659] cm
-q
-[0.8085 -0.5885 0.5885 0.8085 0 0] cm
-[1 0 0 1 -70.962 -49.659] cm
-[1 0 0 1 0 0] Tm
-0 0 Td
-36.231 49.659 Td
-/F6_0 4.9813 Tf
-(TikZ) 14.4253 Tj
--472 TJm
-(this) 11.1736 Tj
-64.182 49.659 Td
-/F8_0 4.9813 Tf
-(!) 6.78 Tj
-[1 0 0 1 70.962 49.659] cm
-Q
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceRGB {} cs
-[0 0 1] sc
-/DeviceRGB {} CS
-[0 0 1] SC
-[1 0 0 1 -70.962 -49.659] cm
-[1 0 0 1 0 0] Tm
-0 0 Td
-103.095 37.083 Td
-/F6_0 4.9813 Tf
-(transparen) 31.8604 Tj
-35 TJm
-(t) 2.6984 Tj
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-/DeviceGray {} cs
-[0] sc
-/DeviceGray {} CS
-[0] SC
-Q
-showpage
-%%PageTrailer
-pdfEndPage
-%%Trailer
-end
-%%DocumentSuppliedResources:
-%%+ font XYFSSI+CMTI7
-%%+ font QRFNIX+CMR5
-%%+ font KCZGMI+CMMI5
-%%+ font ZITESQ+CMSY5
-%%+ font LBWBDW+CMEX10
-%%+ font NMQKLO+CMBX5
-%%EOF

Deleted: trunk/Master/texmf-dist/doc/latex/svg/Fig.2.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/svg/Fig.2.png
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/doc/latex/svg/LICENSE.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/svg/LICENSE.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/svg/LICENSE.md	2017-03-27 21:47:01 UTC (rev 43625)
@@ -0,0 +1,30 @@
+
+ svg         -- Include SVG pictures in LaTeX documents using Inkscape
+----------------------------------------------------------------------------
+ svg-extract -- Extract independent graphic files from SVG pictures
+----------------------------------------------------------------------------
+
+ Copyright (C) Philip Ilten <philten at cern.ch>, 2012-2016  
+ Copyright (C) Falk Hanisch <hanisch.latex at outlook.com>, 2017-
+
+----------------------------------------------------------------------------
+
+ 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.
+
+----------------------------------------------------------------------------
+
+ Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+ in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle 
+ Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und 
+ Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 
+ oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status 
+ "author-maintained", wird somit allein durch den Autor verwaltet. Der 
+ aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch.
+
+----------------------------------------------------------------------------


Property changes on: trunk/Master/texmf-dist/doc/latex/svg/LICENSE.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/svg/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/svg/README	2017-03-27 21:43:48 UTC (rev 43624)
+++ trunk/Master/texmf-dist/doc/latex/svg/README	2017-03-27 21:47:01 UTC (rev 43625)
@@ -1,40 +0,0 @@
-%% -------------------------------------------------------
-%% Copyright (C) 2012 by Philip Ilten <philten at cern.ch>
-%% -------------------------------------------------------
-%% 
-%% This file may be distributed and/or modified under the conditions
-%% of the LaTeX Project Public License, either version 1.3 of this
-%% license or (at your option) any later version. The latest version
-%% of this license is in:
-%%
-%%     http://www.latex-project.org/lppl.txt
-%%
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainer of this work is Philip Ilten.
-%%
-%% This work consists of the files README, svg.dtx (with derived files
-%% svg.sty, svg.pdf, Fig.1a.pdf, Fig.1b.eps, Fig.2.pdf, Fig.2.png),
-%% preamble.tex, example.svg (with derived files example.pdf and
-%% example.pdf_tex), and root.C (with derived files root.svg,
-%% root.pdf, and root.pdf_tex).
-%%
-%% The following files constitute the svg package and should be
-%% distributed as a whole: README, svg.dtx, svg.sty, svg.pdf,
-%% Fig.1a.pdf, Fig.1b.eps, Fig.2.pdf, Fig.2.png, preamble.tex
-%% example.svg, example.pdf, example.pdf_tex, root.C, root.svg,
-%% root.pdf, and root.pdf_tex.
-
-This package provides a command similar to the \includegraphics command of the 
-graphicx package, but for the inclusion of SVGs using Inkscape.
-
-     \includesvg[<options>]{<svg filename>}
-
-A variety of options are available, including width, height, and path of the 
-SVG. Additionally, it is possible to extract the SVG image to a PDF, EPS, or 
-PNG, exactly as it is rendered within the LaTeX document. Within the
-documentation an example is given using an SVG created from the high energy
-particle physics analysis package ROOT.
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/latex/svg/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/svg/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/svg/README.md	2017-03-27 21:47:01 UTC (rev 43625)
@@ -0,0 +1,55 @@
+
+ svg         -- Include SVG pictures in LaTeX documents using Inkscape
+----------------------------------------------------------------------------
+ svg-extract -- Extract independent graphic files from SVG pictures
+----------------------------------------------------------------------------
+
+ Copyright (C) Philip Ilten <philten at cern.ch>, 2012-2016  
+ Copyright (C) Falk Hanisch <hanisch.latex at outlook.com>, 2017-
+
+ svg 2017/03/27 v2.00
+
+----------------------------------------------------------------------------
+
+ 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.
+
+----------------------------------------------------------------------------
+
+
+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.
+
+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***
+
+
+Versions
+--------
+
+**v2.00** (2017/03/27)
++ New maintainer: Falk Hanisch
++ Re-implementation from scratch
++ functionality split in two packages **svg** and **svg-extract**
++ package **svg** intended for including SVG files
++ package **svg-extract** for extracting graphic files rendered with LaTeX
++ **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; 
+  naming exported graphics after their consecutive numbering can't be ensured
+  for all variants of subfigures, so it's neglected
+
+
+**v1.0** (2016/10/10)
++ initial version by Philip Ilten


Property changes on: trunk/Master/texmf-dist/doc/latex/svg/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/svg/example.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/svg/example.pdf_tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/svg/example.pdf_tex	2017-03-27 21:43:48 UTC (rev 43624)
+++ trunk/Master/texmf-dist/doc/latex/svg/example.pdf_tex	2017-03-27 21:47:01 UTC (rev 43625)
@@ -1,40 +0,0 @@
-\begingroup
-  \makeatletter
-  \providecommand\color[2][]{%
-    \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}
-    \renewcommand\color[2][]{}%
-  }
-  \providecommand\transparent[1]{%
-    \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}
-    \renewcommand\transparent[1]{}%
-  }
-  \providecommand\rotatebox[2]{#2}
-  \ifx\svgwidth\undefined
-    \setlength{\unitlength}{212.525pt}
-  \else
-    \setlength{\unitlength}{\svgwidth}
-  \fi
-  \global\let\svgwidth\undefined
-  \makeatother
-  \begin{picture}(1,0.73650159)%
-    \put(0,0){\includegraphics[width=\unitlength]{example.pdf}}%
-    \put(0.63829642,0.6742451){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{\emph{Inkscape}}}}%
-    \put(0.84173702,0.1474823){\color[rgb]{1,0,0}\makebox(0,0)[lb]{\smash{red}}}%
-    \put(0.02294317,0.07460173){\color[rgb]{0,0,0}\rotatebox{45}{\makebox(0,0)[lb]{\smash{45 graden}}}}%
-    \put(0.69834718,0.60455928){\color[rgb]{0,0,0}\makebox(0,0)[b]{\smash{$\lim_{n \to \infty}\sum_{k=1}^n \frac{1}{k^2}$}}}%
-    \put(0.11403042,0.69180401){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{This Figure \ref{fig:example}}}}%
-    \put(0.81701383,0.48297822){\color[rgb]{0,0,0}\makebox(0,0)[b]{\smash{ooo}}}%
-    \put(0.77784162,0.05718502){\color[rgb]{0,0,1}\makebox(0,0)[lb]{\smash{blue}}}%
-    \put(0.81761682,0.10755617){\color[rgb]{0,1,0}\makebox(0,0)[lb]{\smash{green}}}%
-    \put(0.10913692,0.04673474){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{aligned on baseline}}}%
-    \put(0.04733209,0.57343337){\color[rgb]{0,0,0}\rotatebox{-90}{\makebox(0,0)[lb]{\smash{90 degrees}}}}%
-    \put(0.18024362,0.37750422){\color[rgb]{0,0,0}\rotatebox{90}{\makebox(0,0)[lb]{\smash{90 degrees}}}}%
-    \put(0.81701383,0.52121809){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{ooo}}}%
-    \put(0.81701383,0.44838027){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{ooo}}}%
-    \put(0.51430473,0.53384586){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{$x$}}}%
-    \put(0.55894148,0.51324431){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{$y$}}}%
-    \put(0.60701188,0.48749228){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{$z$}}}%
-    \put(0.5006922,0.34645132){\color[rgb]{0,0,0}\rotatebox{-36.04952341}{\makebox(0,0)[rb]{\smash{TikZ this$\rightarrow$}}}}%
-    \put(0.72968311,0.2568264){\color[rgb]{0,0,1}\transparent{0.5}\makebox(0,0)[lb]{\smash{transparent}}}%
-  \end{picture}%
-\endgroup

Deleted: trunk/Master/texmf-dist/doc/latex/svg/example.svg
===================================================================
--- trunk/Master/texmf-dist/doc/latex/svg/example.svg	2017-03-27 21:43:48 UTC (rev 43624)
+++ trunk/Master/texmf-dist/doc/latex/svg/example.svg	2017-03-27 21:47:01 UTC (rev 43625)
@@ -1,363 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="265.65625"
-   height="195.65625"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.48.1 r9760"
-   sodipodi:docname="image.svg">
-  <defs
-     id="defs4">
-    <inkscape:path-effect
-       fuse_tolerance="0"
-       vertical_pattern="false"
-       prop_units="false"
-       tang_offset="0"
-       normal_offset="0"
-       spacing="0"
-       scale_y_rel="false"
-       prop_scale="1"
-       copytype="repeated"
-       pattern="m -74.185426,32.029694 0,4 10,0 0,-4 c 0,0 -1.49278,0.16485 -3,-1 -1.50722,-1.16485 1,-3.4422 1,-4.99999 0,-1.55779 -1.43824,-3.00001 -3,-3.00001 -1.56176,0 -3,1.45475 -3,3 0,1.54525 2.42269,3.78723 1,5 -1.42269,1.21277 -3,1 -3,1 z"
-       is_visible="true"
-       id="path-effect3783"
-       effect="skeletal" />
-    <inkscape:path-effect
-       effect="skeletal"
-       id="path-effect3762"
-       is_visible="true"
-       pattern="m -12.836336,43.184604 0,4 10,0 0,-4 c 0,0 -1.49278,0.16485 -3,-1 -1.50722,-1.16485 1,-3.4422 1,-4.99999 0,-1.55779 -1.43824,-3.00001 -3,-3.00001 -1.56176,0 -3,1.45475 -3,3 0,1.54525 2.42269,3.78723 1,5 -1.42269,1.21277 -3,1 -3,1 z"
-       copytype="repeated"
-       prop_scale="1"
-       scale_y_rel="false"
-       spacing="0"
-       normal_offset="0"
-       tang_offset="0"
-       prop_units="false"
-       vertical_pattern="false"
-       fuse_tolerance="0" />
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective2926" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1.261286"
-     inkscape:cx="346.30469"
-     inkscape:cy="42.723718"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:snap-bbox="true"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:window-width="1366"
-     inkscape:window-height="747"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1"
-     inkscape:object-paths="true"
-     inkscape:snap-nodes="true"
-     inkscape:snap-global="true"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0">
-    <sodipodi:guide
-       orientation="0,1"
-       position="106.05433,207.01558"
-       id="guide2945" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="0.49339,127.21353"
-       id="guide2947" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="265.15336,101.45464"
-       id="guide2951" />
-    <inkscape:grid
-       type="xygrid"
-       id="grid2988"
-       empspacing="5"
-       visible="true"
-       enabled="true"
-       snapvisiblegridlinesonly="true" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-204.0625,-217.71875)">
-    <path
-       style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
-       d="m 294.91757,241.60997 c 10.03604,35.83378 -43.91797,48.61968 -31.06556,92.81028"
-       id="path2907"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
-       d="m 444.46712,321.01174 c -11.72773,26.21816 -37.36987,49.4917 -54.54824,66.67007"
-       id="path2913"
-       inkscape:connector-curvature="0" />
-    <g
-       id="g3785"
-       transform="matrix(0.5,-0.8660254,0.8660254,0.5,7.1032015,475.6825)">
-      <text
-         id="text2919"
-         y="-241.42493"
-         x="366.52673"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;stroke:none;font-family:Times New Roman;-inkscape-font-specification:'Times New Roman,'"
-         xml:space="preserve"
-         transform="matrix(0.5,0.8660254,-0.8660254,0.5,0,0)"><tspan
-           y="-241.42493"
-           x="366.52673"
-           id="tspan2921"
-           sodipodi:role="line">\emph{Inkscape}</tspan></text>
-    </g>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ff0000;stroke:none;font-family:Times New Roman;-inkscape-font-specification:'Times New Roman,'"
-       x="427.6752"
-       y="374.1954"
-       id="text2923"><tspan
-         sodipodi:role="line"
-         id="tspan2925"
-         x="427.6752"
-         y="374.1954">red</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;stroke:none;font-family:Times New Roman;-inkscape-font-specification:'Times New Roman,'"
-       x="-129.68274"
-       y="426.89032"
-       id="text2935"
-       transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"><tspan
-         sodipodi:role="line"
-         id="tspan2937"
-         x="-129.68274"
-         y="426.89032">45 graden</tspan></text>
-    <rect
-       style="fill:none;stroke:#ff0000;stroke-width:1"
-       id="rect2943"
-       width="264.65997"
-       height="194.65775"
-       x="204.55589"
-       y="218.21747" />
-    <text
-       xml:space="preserve"
-       style="font-size:6.09581709px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#000000;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
-       x="389.58279"
-       y="252.77005"
-       id="text2937"><tspan
-         sodipodi:role="line"
-         id="tspan2939"
-         x="389.58279"
-         y="252.77005">$\lim_{n \to \infty}\sum_{k=1}^n \frac{1}{k^2}$</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
-       x="234.35539"
-       y="229.59294"
-       id="text2949"><tspan
-         sodipodi:role="line"
-         id="tspan2951"
-         x="234.35539"
-         y="229.59294">This Figure \ref{fig:example}</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
-       x="421.10733"
-       y="285.06882"
-       id="text2959"><tspan
-         sodipodi:role="line"
-         id="tspan2961"
-         x="421.10733"
-         y="285.06882">ooo</tspan></text>
-    <path
-       style="fill:none;stroke:#000000"
-       d="m 421.10734,265.71894 0,31.49638"
-       id="path2963"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <text
-       xml:space="preserve"
-       style="font-size:19.38392448px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:none;stroke:#0000ff;stroke-width:1.21140051px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
-       x="410.70099"
-       y="398.18344"
-       id="text2963"><tspan
-         sodipodi:role="line"
-         id="tspan2965"
-         x="410.70099"
-         y="398.18344"
-         style="stroke-width:1.21140051">blue</tspan></text>
-    <text
-       id="text2967"
-       y="384.80203"
-       x="421.26752"
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
-       xml:space="preserve"><tspan
-         y="384.80203"
-         x="421.26752"
-         id="tspan2969"
-         sodipodi:role="line">green</tspan></text>
-    <rect
-       style="fill:#666666;stroke:none"
-       id="rect2930"
-       width="87.301743"
-       height="5.1525674"
-       x="233.0554"
-       y="400.95963" />
-    <text
-       xml:space="preserve"
-       style="font-size:9.62269783px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Adobe Garamond Pro;-inkscape-font-specification:Adobe Garamond Pro"
-       x="233.0554"
-       y="400.95963"
-       id="text2952"
-       sodipodi:linespacing="100%"><tspan
-         sodipodi:role="line"
-         id="tspan2954"
-         x="233.0554"
-         y="400.95963">aligned on baseline</tspan></text>
-    <g
-       id="g2967"
-       transform="translate(70.236115,-35.574136)">
-      <rect
-         style="fill:#b3b3b3;stroke:none"
-         id="rect2965"
-         width="35.308773"
-         height="93.175751"
-         x="146.40045"
-         y="281.01093" />
-      <text
-         transform="matrix(0,1,-1,0,0,0)"
-         id="text2950"
-         y="-146.40045"
-         x="296.61298"
-         style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;stroke:none;font-family:Times New Roman;-inkscape-font-specification:'Times New Roman,'"
-         xml:space="preserve"><tspan
-           y="-146.40045"
-           x="296.61298"
-           id="tspan2952"
-           sodipodi:role="line">90 degrees</tspan></text>
-      <text
-         xml:space="preserve"
-         style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;stroke:none;font-family:Times New Roman;-inkscape-font-specification:'Times New Roman,'"
-         x="-348.66278"
-         y="181.70923"
-         id="text2946"
-         transform="matrix(0,-1,1,0,0,0)"><tspan
-           sodipodi:role="line"
-           id="tspan2948"
-           x="-348.66278"
-           y="181.70923">90 degrees</tspan></text>
-    </g>
-    <text
-       id="text2968"
-       y="274.91016"
-       x="421.10733"
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
-       xml:space="preserve"><tspan
-         y="274.91016"
-         x="421.10733"
-         id="tspan2970"
-         sodipodi:role="line">ooo</tspan></text>
-    <text
-       id="text2972"
-       y="294.25998"
-       x="421.10733"
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:end;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:end;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
-       xml:space="preserve"><tspan
-         y="294.25998"
-         x="421.10733"
-         id="tspan2974"
-         sodipodi:role="line">ooo</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
-       x="340.69077"
-       y="271.55551"
-       id="text2976"><tspan
-         sodipodi:role="line"
-         id="tspan2978"
-         x="340.69077"
-         y="271.55551">$x$</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
-       x="352.5488"
-       y="277.02844"
-       id="text2980"><tspan
-         sodipodi:role="line"
-         id="tspan2982"
-         x="352.5488"
-         y="277.02844">$y$</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
-       x="365.319"
-       y="283.86963"
-       id="text2984"><tspan
-         sodipodi:role="line"
-         id="tspan2986"
-         x="365.319"
-         y="283.86963">$z$</tspan></text>
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none"
-       d="m 287.16748,387.47104 3.95908,0.57071 c 0.34178,-2.90837 0.97982,-5.73577 1.88034,-8.47543 l -3.70392,-1.25175 c 0,0 -0.27778,1.34095 -1.76248,2.42101 -0.74235,0.54003 -1.49922,0.10161 -2.24207,-0.55848 -0.74284,-0.66008 -1.45926,-1.5431 -2.19069,-1.76159 -0.73143,-0.21848 -1.54786,-0.0673 -2.23986,0.36101 -0.692,0.42832 -1.2574,1.135 -1.46965,1.96981 -0.21224,0.8348 -0.0483,1.72402 0.36541,2.4253 0.4137,0.70128 1.07479,1.21356 1.8299,1.35136 0.75512,0.1378 1.79931,-0.31044 2.76459,-0.55448 0.96527,-0.24404 1.8436,-0.29261 2.29981,0.49833 0.91243,1.58188 0.50954,3.0042 0.50954,3.0042 z m 2.1355,-9.15647 3.70392,1.25175 c 0.90052,-2.73966 2.06352,-5.39159 3.45521,-7.94901 l -3.43252,-1.85171 c 0,0 -0.5105,1.27601 -2.1519,2.07843 -0.8207,0.4012 -1.48189,-0.15789 -2.09551,-0.93012 -0.61362,-0.77222 -1.1684,-1.7579 -1.84762,-2.09637 -0.67921,-0.33847 -1.50118,-0.33002 -2.24391,-0.0315 -0.74273,0.29849 -1.40431,0.88827 -1.74365,1.66139 -0.33935,0.77311 -0.32337,1.66224 -0.0383,2.41272 0.28509,0.75047 0.83718,1.36119 1.54238,1.6274 0.7052,0.26622 1.78931,0.0175 2.76609,-0.0494 0.97677,-0.0669 1.83945,0.0397 2.13989,0.88608 0.60088,1.69283 -0.0541,2.99039 -0.0541,2.99039 z m 3.72661,-8.54897 3.43252,1.85171 c 1.39169,-2.55743 3.01207,-5.02035 4.82734,-7.38201 l -3.14489,-2.37057 c 0,0 -0.71361,1.20167 -2.47643,1.74394 -0.88141,0.27113 -1.44848,-0.39018 -1.93808,-1.25432 -0.4896,-0.86413 -0.89155,-1.9305 -1.51539,-2.37316 -0.62384,-0.44267 -1.44101,-0.56318 -2.22097,-0.38552 -0.77995,0.17767 -1.52104,0.65481 -1.97165,1.36307 -0.45062,0.70826 -0.56888,1.58687 -0.40343,2.373 0.16546,0.78614 0.61279,1.47862 1.26494,1.85758 0.65216,0.37897 1.76005,0.313 2.73599,0.40662 0.97593,0.0936 1.81438,0.33882 1.971,1.22553 0.31325,1.77342 -0.56095,2.94413 -0.56095,2.94413 z m 5.11497,-7.90087 3.14489,2.37057 c 1.81528,-2.36165 3.82546,-4.62205 5.99674,-6.7744 l -2.84102,-2.80834 c 0,0 -0.88714,1.11792 -2.73608,1.41754 -0.92447,0.14981 -1.39901,-0.59526 -1.76978,-1.53108 -0.37077,-0.93583 -0.62871,-2.0609 -1.19401,-!
 2.59197 -0.56531,-0.53106 -1.36734,-0.76679 -2.17103,-0.70095 -0.80368,0.0658 -1.6076,0.43462 -2.15366,1.07485 -1.0921,1.28046 -0.92435,3.39593 0.26759,4.34804 0.59596,0.47605 1.71152,0.57611 2.67427,0.81364 0.96274,0.23754 1.76838,0.60486 1.79315,1.51669 0.0495,1.82365 -1.01106,2.86541 -1.01106,2.86541 z m 6.30061,-7.21217 2.84102,2.80834 c 2.17128,-2.15236 4.50368,-4.19669 6.96339,-6.12621 l -2.52091,-3.16501 c 0,0 -1.03107,1.02478 -2.93085,1.09924 -0.9499,0.0372 -1.33348,-0.77313 -1.59061,-1.76042 -0.25714,-0.9873 -0.37988,-2.14909 -0.88348,-2.75276 -1.0072,-1.20735 -3.13243,-1.3192 -4.38374,-0.18113 -1.25131,1.13806 -1.351,3.27754 -0.27771,4.3925 0.53664,0.55748 1.64375,0.80683 2.58095,1.17165 0.9372,0.36483 1.70146,0.83779 1.60634,1.75955 -0.19025,1.84352 -1.4044,2.75425 -1.4044,2.75425 z m 7.2835,-6.48288 2.52091,3.16501 c 2.45971,-1.92953 5.04675,-3.74426 7.72731,-5.43742 l -2.18456,-3.44058 c 0,0 -1.1454,0.92222 -3.06075,0.78904 -0.95767,-0.0666 -1.25186,-0.92379 -1.40056,-1.94234 -0.1487,-1.01854 -0.14506,-2.19507 -0.5838,-2.85556 -0.87748,-1.32099 -2.99094,-1.67684 -4.3698,-0.68751 -1.37886,0.98934 -1.72273,3.11748 -0.77436,4.36396 0.47419,0.62324 1.55672,1.00515 2.45603,1.48065 0.89931,0.4755 1.61362,1.03761 1.41056,1.95412 -0.40612,1.83302 -1.74098,2.61063 -1.74098,2.61063 z m 8.06366,-5.71299 2.18456,3.44058 c 2.68056,-1.69317 5.45465,-3.26477 8.28849,-4.70804 l -1.83198,-3.63506 c 0,0 -1.23014,0.81028 -3.12576,0.48694 -0.9478,-0.16168 -1.15419,-1.04724 -1.19964,-2.07681 -0.0455,-1.02957 0.0757,-2.19885 -0.29497,-2.90037 -0.74143,-1.40305 -2.80811,-1.9795 -4.28285,-1.14524 -1.47475,0.83425 -2.03955,2.91575 -1.22237,4.26242 0.4086,0.67333 1.45042,1.17106 2.29949,1.74062 0.84908,0.56956 1.50485,1.20432 1.20582,2.1004 -0.59807,1.79216 -2.02079,2.43456 -2.02079,2.43456 z m 8.64107,-4.90252 1.83198,3.63506 c 2.83383,-1.44327 5.7274,-2.75821 8.64692,-3.93805 l -1.46315,-3.74844 c 0,0 -1.28528,0.68891 -3.12588,0.19291 -0.9203,-0.248 -1.04045,-1.14347 -0.98786,-2.16384 0.0526,-1.02037 0.28255,-2.16043 -0.01!
 7,-2.88719 -0.59906,-1.45351 -2.58395,-2.22717 -4.12292,-1.55433 -1.53896,0.67285 -2.30144,2.67235 -1.62172,4.08788 0.33986,0.70777 1.32486,1.30458 2.11134,1.95158 0.78649,0.64701 1.37517,1.33792 0.99212,2.19839 -0.7661,1.72094 -2.24385,2.22603 -2.24385,2.22603 z m 9.01575,-4.05143 1.46315,3.74844 c 0.9122,-0.36864 1.82693,-0.72409 2.74316,-1.06615 1.86737,-0.68365 3.80592,-1.22817 5.79998,-1.66033 l -0.85388,-3.9 c 0,0 -1.32587,0.45444 -3.04394,-0.27892 -0.85903,-0.36667 -0.87209,-1.25312 -0.6851,-2.24619 0.18698,-0.99307 0.582,-2.08314 0.38981,-2.83614 -0.19219,-0.75301 -0.75062,-1.38453 -1.48495,-1.75887 -0.73433,-0.37433 -1.64489,-0.48872 -2.48294,-0.22738 -0.73643,0.22966 -1.35872,0.73394 -1.76459,1.34881 -0.47909,0.76656 -0.63209,1.71543 -0.3316,2.53006 0.28765,0.77983 1.3161,1.50571 2.04471,2.2697 0,0 0,0 1e-5,0 0.5881,0.61315 0.97396,1.25177 0.69175,1.93815 -0.0214,0.0509 -0.0464,0.10216 -0.0754,0.15375 -0.91021,1.61936 -2.41014,1.98507 -2.41014,1.98507 z m 9.15241,-2.87804 0.85388,3.9 c 2.90023,-0.62854 5.91785,-1.0194 9.00461,-1.25495 l -0.30698,-3.99535 c 0,0 -1.41227,0.27098 -3.014,-0.72213 -0.80086,-0.49656 -0.66805,-1.37761 -0.33041,-2.33277 0.33763,-0.95516 0.88465,-1.9769 0.80665,-2.75298 -0.078,-0.77608 -0.52945,-1.48644 -1.18246,-1.97152 -0.65301,-0.48507 -1.50825,-0.74274 -2.35114,-0.62215 -0.84289,0.12059 -1.59942,0.61212 -2.09752,1.26332 -0.4981,0.6512 -0.73737,1.45964 -0.59662,2.21842 0.14075,0.75879 0.9303,1.57511 1.50829,2.39458 0.578,0.81948 0.9476,1.63261 0.36386,2.34583 -1.16748,1.42645 -2.65816,1.5297 -2.65816,1.5297 z m 9.55151,-1.3503 0.30698,3.99535 c 1.64468,-0.12551 3.30898,-0.20692 4.9856,-0.2567 1.48244,-0.0361 2.98436,-0.0459 4.50548,-0.043 l 0.006,-4.00062 c 0,0 -1.46849,0.16033 -2.97704,-0.9852 -0.75428,-0.57276 -0.52444,-1.43612 -0.0959,-2.35157 0.42852,-0.91546 1.05662,-1.87946 1.05092,-2.65837 -0.0106,-1.44793 -1.30053,-2.78914 -2.80191,-2.93638 0,0 0,0 0,0 -0.11479,-0.0117 -0.23066,-0.0165 -0.34705,-0.0139 -1.65022,0.0368 -3.10489,1.57568 -3.01939,3.12112 0.0428,0.77273 !
 0.71563,1.68675 1.18802,2.57301 0.47239,0.88627 0.74766,1.73885 0.0739,2.37764 -1.34742,1.27759 -2.8756,1.17864 -2.8756,1.17864 z m 9.80402,-0.30501 -0.006,4.00062 c 3.25594,0.006 6.59983,0.0704 10.02883,0.0589 l -0.0109,-3.99942 c 0,0 -1.51341,0.16772 -3.01727,-1.00765 -1.50386,-1.17537 1.0194,-3.43666 1.02649,-4.99453 0.007,-1.55787 -1.39726,-3.009 -2.95509,-3.02403 -1.55784,-0.015 -3.02631,1.42844 -3.03724,2.97405 -0.0109,1.54561 2.3935,3.80839 0.96248,5.00912 -1.43101,1.20073 -2.99137,0.98299 -2.99137,0.98299 z m 10.012,0.0601 0.0109,3.99942 c 2.33279,-0.008 4.70498,-0.0508 7.11565,-0.17102 1.14455,-0.0536 2.2937,-0.13093 3.44548,-0.23406 l -0.36221,-3.98974 c 0,0 -1.54639,0.30263 -3.14071,-0.77989 -0.0798,-0.0541 -0.1493,-0.11172 -0.20948,-0.17237 -0.47679,-0.48126 -0.36754,-1.1536 -0.097,-1.88084 0,0 0,0 0,0 0.37619,-1.01237 1.05122,-2.13975 0.99468,-2.99975 -0.0594,-0.9031 -0.57388,-1.73488 -1.26609,-2.26358 -0.50528,-0.38328 -1.10917,-0.60955 -1.72768,-0.58752 -1.47447,0.0525 -2.83745,1.52115 -2.81706,3.06577 0.0102,0.77231 0.6188,1.71044 1.06181,2.60673 0.44301,0.89628 0.71971,1.75443 0.0134,2.37462 -1.41266,1.24039 -3.02164,1.03223 -3.02164,1.03223 z m 10.20979,-0.3954 0.36221,3.98974 c 3.60283,-0.32262 7.23149,-0.89785 10.82639,-1.79 l -0.95271,-3.87989 c 0,0 -1.50311,0.53905 -3.2394,-0.31083 -0.86815,-0.42495 -0.76283,-1.3231 -0.5098,-2.29806 0.25303,-0.97497 0.64585,-2.03468 0.48574,-2.79669 -0.16012,-0.76202 -0.64159,-1.42646 -1.24413,-1.87632 -0.60253,-0.44986 -1.32725,-0.68653 -2.02397,-0.57588 -0.69671,0.11064 -1.31686,0.56453 -1.75245,1.18325 -0.4356,0.61872 -0.68565,1.40339 -0.59526,2.172 0.0904,0.7686 0.78338,1.64105 1.32175,2.48447 0.53837,0.84341 0.91976,1.66559 0.27781,2.3629 -1.2839,1.39463 -2.95618,1.33531 -2.95618,1.33531 z m 10.23589,-1.68015 0.95271,3.87989 c 3.25188,-0.80703 6.47613,-1.87338 9.62866,-3.24666 0.32875,-0.14834 0.65565,-0.29946 0.9807,-0.45327 l -1.68908,-3.6213 c 0,0 -0.34546,0.21082 -0.93849,0.35612 -0.5821,0.13971 -1.40098,0.21202 -2.32493,-0.0437 -0.93467,-0.25873 -!
 0.98707,-1.16086 -0.91702,-2.1634 0.07,-1.00255 0.25116,-2.11463 -0.048,-2.83297 -0.29915,-0.71835 -0.88822,-1.28159 -1.54667,-1.61614 -0.65845,-0.33455 -1.38785,-0.44232 -2.02958,-0.21948 -0.64172,0.22284 -1.15295,0.76496 -1.46712,1.43966 -0.31417,0.67469 -0.42982,1.48356 -0.21941,2.22543 0.21042,0.74187 1.02354,1.49235 1.68831,2.23425 0.66476,0.74191 1.17972,1.48622 0.65735,2.27744 -1.04474,1.58243 -2.72745,1.78417 -2.72745,1.78417 z m 9.87299,-3.44134 1.68908,3.6213 c 3.40661,-1.61202 6.61036,-3.52091 9.61469,-5.65655 l -2.3228,-3.24799 c 0,0 -1.19713,1.055 -3.12299,0.90806 -0.96293,-0.0735 -1.19337,-0.94495 -1.3187,-1.9412 -0.12533,-0.99624 -0.15563,-2.12336 -0.58588,-2.77023 -0.43025,-0.64687 -1.12075,-1.08367 -1.83907,-1.27937 -0.71831,-0.19569 -1.46486,-0.15221 -2.05475,0.19613 -0.5899,0.34834 -0.9827,0.98101 -1.15472,1.70314 -0.17202,0.72213 -0.1227,1.53587 0.23064,2.2208 0.35334,0.68493 1.29756,1.25945 2.09623,1.85355 0.79868,0.5941 1.4517,1.21983 1.09753,2.09904 -0.70835,1.7584 -2.32926,2.29332 -2.32926,2.29332 z m 8.98097,-5.28324 2.3228,3.24799 c 3.00434,-2.13564 5.80926,-4.49802 8.41821,-7.017 l -2.78819,-2.88295 c 0,0 -1.01759,1.21236 -2.94569,1.36636 -0.96404,0.077 -1.33475,-0.74721 -1.61636,-1.7166 -0.28162,-0.9694 -0.48269,-2.08755 -1.01012,-2.66302 -1.05485,-1.15093 -2.99586,-1.32431 -4.07423,-0.41097 -0.53919,0.45668 -0.83207,1.16406 -0.88428,1.91629 -0.0522,0.75223 0.13674,1.55091 0.60599,2.16405 0.46924,0.61314 1.50541,1.00891 2.39786,1.4567 0.89245,0.44779 1.64216,0.95724 1.44684,1.88372 -0.39064,1.85297 -1.87283,2.65543 -1.87283,2.65543 z"
-       id="path2992"
-       inkscape:connector-curvature="0"
-       inkscape:path-effect="#path-effect3762"
-       inkscape:original-d="m 284.69306,387.11435 c 3.32015,-23.03245 21.64767,-45.22652 54.77744,-57.05108 29.53536,-10.54165 56.87023,9.24678 87.10615,-25.68985"
-       sodipodi:nodetypes="csc" />
-    <text
-       xml:space="preserve"
-       style="font-size:5.83659029px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:end;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:end;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
-       x="461.30307"
-       y="61.904903"
-       id="text3789"
-       transform="matrix(0.81460626,0.59292254,-0.625247,0.77249217,0,0)"><tspan
-         sodipodi:role="line"
-         id="tspan3791"
-         x="461.30307"
-         y="61.904903">TikZ this$\rightarrow$</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:0.5;color:#000000;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
-       x="397.90738"
-       y="345.14746"
-       id="text2966"><tspan
-         sodipodi:role="line"
-         id="tspan2968"
-         x="397.90738"
-         y="345.14746">transparent</tspan></text>
-  </g>
-</svg>

Deleted: trunk/Master/texmf-dist/doc/latex/svg/preamble.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/svg/preamble.tex	2017-03-27 21:43:48 UTC (rev 43624)
+++ trunk/Master/texmf-dist/doc/latex/svg/preamble.tex	2017-03-27 21:47:01 UTC (rev 43625)
@@ -1,8 +0,0 @@
-\documentclass{article}
-\usepackage{svg}
-\usepackage{transparent}
-\usepackage{xcolor}
-\usepackage{relsize}
-\begin{document}
-
-There can be additional things after the preamble, but they don't matter!
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/svg/root.C
===================================================================
--- trunk/Master/texmf-dist/doc/latex/svg/root.C	2017-03-27 21:43:48 UTC (rev 43624)
+++ trunk/Master/texmf-dist/doc/latex/svg/root.C	2017-03-27 21:47:01 UTC (rev 43625)
@@ -23,4 +23,5 @@
 
   // Print the plot.
   gPad->Print("root.svg");
+  
 }

Deleted: trunk/Master/texmf-dist/doc/latex/svg/root.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/svg/root.pdf_tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/svg/root.pdf_tex	2017-03-27 21:43:48 UTC (rev 43624)
+++ trunk/Master/texmf-dist/doc/latex/svg/root.pdf_tex	2017-03-27 21:47:01 UTC (rev 43625)
@@ -1,49 +0,0 @@
-\begingroup
-  \makeatletter
-  \providecommand\color[2][]{%
-    \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}
-    \renewcommand\color[2][]{}%
-  }
-  \providecommand\transparent[1]{%
-    \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}
-    \renewcommand\transparent[1]{}%
-  }
-  \providecommand\rotatebox[2]{#2}
-  \ifx\svgwidth\undefined
-    \setlength{\unitlength}{453.6pt}
-  \else
-    \setlength{\unitlength}{\svgwidth}
-  \fi
-  \global\let\svgwidth\undefined
-  \makeatother
-  \begin{picture}(1,0.67724868)%
-    \put(0,0){\includegraphics[width=\unitlength]{root.pdf}}%
-    \put(0.67372134,0.02645503){\color[rgb]{0,0,0}\rotatebox{9}{\makebox(0,0)[b]{\smash{\larger[2]$x$}}}}%
-    \put(0.4021164,0.0335097){\color[rgb]{0,0,0}\makebox(0,0)[b]{\smash{0}}}%
-    \put(0.46560847,0.04585538){\color[rgb]{0,0,0}\makebox(0,0)[b]{\smash{0.5}}}%
-    \put(0.5308642,0.05643739){\color[rgb]{0,0,0}\makebox(0,0)[b]{\smash{1}}}%
-    \put(0.59611993,0.0670194){\color[rgb]{0,0,0}\makebox(0,0)[b]{\smash{1.5}}}%
-    \put(0.66137566,0.07936508){\color[rgb]{0,0,0}\makebox(0,0)[b]{\smash{2}}}%
-    \put(0.72663139,0.08994709){\color[rgb]{0,0,0}\makebox(0,0)[b]{\smash{2.5}}}%
-    \put(0.79188713,0.10229277){\color[rgb]{0,0,0}\makebox(0,0)[b]{\smash{3}}}%
-    \put(0.85714286,0.11287478){\color[rgb]{0,0,0}\makebox(0,0)[b]{\smash{3.5}}}%
-    \put(0.17813051,0.07231041){\color[rgb]{0,0,0}\rotatebox{-27}{\makebox(0,0)[b]{\smash{\larger[2]$y$}}}}%
-    \put(0.37213404,0.03880071){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{0}}}%
-    \put(0.33333333,0.05820106){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{0.5}}}%
-    \put(0.2962963,0.07760141){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{1}}}%
-    \put(0.25925926,0.09700176){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{1.5}}}%
-    \put(0.22222222,0.11640212){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{2}}}%
-    \put(0.18342152,0.13580247){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{2.5}}}%
-    \put(0.14638448,0.15520282){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{3}}}%
-    \put(0.10934744,0.17460317){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{3.5}}}%
-    \put(0.08465608,0.20811287){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{0}}}%
-    \put(0.08465608,0.25220459){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{20}}}%
-    \put(0.08465608,0.29453263){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{40}}}%
-    \put(0.08465608,0.33686067){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{60}}}%
-    \put(0.08465608,0.37918871){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{80}}}%
-    \put(0.08465608,0.42151675){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{100}}}%
-    \put(0.08465608,0.46560847){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{120}}}%
-    \put(0.08465608,0.50793651){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{140}}}%
-    \put(0.85537919,0.61199295){\color[rgb]{0,0,0}\makebox(0,0)[rb]{\smash{\larger[2]$z(x,y) = \frac{1}{\sigma_x\sigma_y\sqrt{4\pi^2}}\exp\left(- \left(\frac{(x-\mu_x)^2}{2\sigma_x^2} + \frac{(y-\mu_y)^2}{2\sigma_y^2} \right)\right)$}}}%
-  \end{picture}%
-\endgroup

Added: trunk/Master/texmf-dist/doc/latex/svg/svg-example.svg
===================================================================
--- trunk/Master/texmf-dist/doc/latex/svg/svg-example.svg	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/svg/svg-example.svg	2017-03-27 21:47:01 UTC (rev 43625)
@@ -0,0 +1,401 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="744.09448819"
+   height="1052.3622047"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="svg-example.svg">
+  <defs
+     id="defs4">
+    <inkscape:path-effect
+       fuse_tolerance="0"
+       vertical_pattern="false"
+       prop_units="false"
+       tang_offset="0"
+       normal_offset="0"
+       spacing="0"
+       scale_y_rel="false"
+       prop_scale="1"
+       copytype="repeated"
+       pattern="m -74.185426,32.029694 0,4 10,0 0,-4 c 0,0 -1.49278,0.16485 -3,-1 -1.50722,-1.16485 1,-3.4422 1,-4.99999 0,-1.55779 -1.43824,-3.00001 -3,-3.00001 -1.56176,0 -3,1.45475 -3,3 0,1.54525 2.42269,3.78723 1,5 -1.42269,1.21277 -3,1 -3,1 z"
+       is_visible="true"
+       id="path-effect3783"
+       effect="skeletal" />
+    <inkscape:path-effect
+       effect="skeletal"
+       id="path-effect3762"
+       is_visible="true"
+       pattern="m -12.836336,43.184604 0,4 10,0 0,-4 c 0,0 -1.49278,0.16485 -3,-1 -1.50722,-1.16485 1,-3.4422 1,-4.99999 0,-1.55779 -1.43824,-3.00001 -3,-3.00001 -1.56176,0 -3,1.45475 -3,3 0,1.54525 2.42269,3.78723 1,5 -1.42269,1.21277 -3,1 -3,1 z"
+       copytype="repeated"
+       prop_scale="1"
+       scale_y_rel="false"
+       spacing="0"
+       normal_offset="0"
+       tang_offset="0"
+       prop_units="false"
+       vertical_pattern="false"
+       fuse_tolerance="0" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective2926" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="3.0835719"
+     inkscape:cx="476.83032"
+     inkscape:cy="630.19665"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:snap-bbox="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1600"
+     inkscape:window-height="838"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:object-paths="true"
+     inkscape:snap-nodes="true"
+     inkscape:snap-global="true">
+    <sodipodi:guide
+       orientation="0,1"
+       position="310.11683,846.00276"
+       id="guide2945" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="204.55589,766.20071"
+       id="guide2947" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="469.21586,740.44182"
+       id="guide2951" />
+    <inkscape:grid
+       type="xygrid"
+       id="grid2988" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <path
+       style="fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 444.46712,321.01174 c -11.72773,26.21816 -37.36987,49.4917 -54.54824,66.67007"
+       id="path2913"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="opacity:0.5;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       id="rect2968"
+       width="70.454422"
+       height="52.465542"
+       x="326.03821"
+       y="356.24725" />
+    <path
+       style="fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 294.91757,241.60997 c 10.03604,35.83378 -43.91797,48.61968 -31.06556,92.81028"
+       id="path2907"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <g
+       id="g3785"
+       transform="matrix(0.5,-0.8660254,0.8660254,0.5,7.8960431,472.90755)">
+      <text
+         id="text2919"
+         y="-241.42493"
+         x="366.52673"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:black;stroke:none;font-family:Times New Roman;-inkscape-font-specification:'Times New Roman,'"
+         xml:space="preserve"
+         transform="matrix(0.5,0.8660254,-0.8660254,0.5,0,0)"><tspan
+           y="-241.42493"
+           x="366.52673"
+           id="tspan2921"
+           sodipodi:role="line">Ink<tspan
+   style="font-style:italic;-inkscape-font-specification:'Times New Roman, Italic'"
+   id="tspan136">scape</tspan></tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:red;stroke:none;font-family:Times New Roman;-inkscape-font-specification:'Times New Roman,'"
+       x="427.6752"
+       y="374.1954"
+       id="text2923"><tspan
+         sodipodi:role="line"
+         id="tspan2925"
+         x="427.6752"
+         y="374.1954">red</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:black;stroke:none;font-family:Times New Roman;-inkscape-font-specification:'Times New Roman,'"
+       x="-129.68274"
+       y="426.89032"
+       id="text2935"
+       transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"><tspan
+         sodipodi:role="line"
+         id="tspan2937"
+         x="-129.68274"
+         y="426.89032">45 graden</tspan></text>
+    <rect
+       style="fill:none;stroke:#ff0000;stroke-width:1.05305266"
+       id="rect2943"
+       width="264.60693"
+       height="215.90314"
+       x="204.58241"
+       y="218.24399" />
+    <text
+       xml:space="preserve"
+       style="font-size:6.09581709px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:black;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+       x="389.58279"
+       y="252.77005"
+       id="text2937"><tspan
+         sodipodi:role="line"
+         id="tspan2939"
+         x="389.58279"
+         y="252.77005">$\lim_{n \to \infty}\sum_{k=1}^n \frac{1}{k^2}$</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial;fill:#000000;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="234.35539"
+       y="229.59294"
+       id="text2949"><tspan
+         sodipodi:role="line"
+         id="tspan2951"
+         x="234.35539"
+         y="229.59294">I am figure \ref{fig:example-tex}</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:center;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:middle;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
+       x="421.10733"
+       y="285.06882"
+       id="text2959"><tspan
+         sodipodi:role="line"
+         id="tspan2961"
+         x="421.10733"
+         y="285.06882">ooo</tspan></text>
+    <path
+       style="fill:none;stroke:black"
+       d="m 421.10734,265.71894 0,31.49638"
+       id="path2963"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <flowRoot
+       xml:space="preserve"
+       id="flowRoot2951"
+       style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6px;line-height:normal;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:justify;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate"
+       transform="translate(5.1678276,38.561474)"><flowRegion
+         id="flowRegion2953"><rect
+           id="rect2955"
+           width="73.170059"
+           height="56.627949"
+           x="320.87039"
+           y="317.68579"
+           style="font-size:6px;text-align:justify;text-anchor:start" /></flowRegion><flowPara
+         style="font-size:6px;text-align:start;text-anchor:start"
+         id="flowPara2969">\tiny Flowed text also works. This is a test text to see that it <flowSpan
+   style="font-weight:bold;-inkscape-font-specification:'Arial Bold';text-align:start;text-anchor:start"
+   id="flowSpan138">does</flowSpan> work.</flowPara><flowPara
+         style="font-size:6px;text-align:start;text-anchor:start"
+         id="flowPara3407">But, only for rectangular flow shapes.</flowPara></flowRoot>    <text
+       xml:space="preserve"
+       style="font-size:19.38392448px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:black;fill:none;stroke:blue;stroke-width:1.21140051px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
+       x="410.70099"
+       y="398.18344"
+       id="text2963"><tspan
+         sodipodi:role="line"
+         id="tspan2965"
+         x="410.70099"
+         y="398.18344"
+         style="stroke-width:1.21140051">blue</tspan></text>
+    <text
+       id="text2967"
+       y="384.80203"
+       x="421.26752"
+       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:black;fill:lime;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
+       xml:space="preserve"><tspan
+         y="384.80203"
+         x="421.26752"
+         id="tspan2969"
+         sodipodi:role="line">green</tspan></text>
+    <rect
+       style="fill:#666;stroke:none"
+       id="rect2930"
+       width="87.301743"
+       height="5.1525674"
+       x="233.0554"
+       y="400.95963" />
+    <text
+       xml:space="preserve"
+       style="font-size:9.62269783px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Adobe Garamond Pro;-inkscape-font-specification:Adobe Garamond Pro"
+       x="233.0554"
+       y="400.95963"
+       id="text2952"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan2954"
+         x="233.0554"
+         y="400.95963">aligned on baseline</tspan></text>
+    <g
+       id="g2967"
+       transform="translate(70.236115,-35.574136)">
+      <rect
+         style="fill:#b3b3b3;stroke:none"
+         id="rect2965"
+         width="35.308773"
+         height="93.175751"
+         x="146.40045"
+         y="281.01093" />
+      <text
+         transform="matrix(0,1,-1,0,0,0)"
+         id="text2950"
+         y="-146.40045"
+         x="296.61298"
+         style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:black;stroke:none;font-family:Times New Roman;-inkscape-font-specification:'Times New Roman,'"
+         xml:space="preserve"><tspan
+           y="-146.40045"
+           x="296.61298"
+           id="tspan2952"
+           sodipodi:role="line">90 degrees</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:black;stroke:none;font-family:Times New Roman;-inkscape-font-specification:'Times New Roman,'"
+         x="-348.66278"
+         y="181.70923"
+         id="text2946"
+         transform="matrix(0,-1,1,0,0,0)"><tspan
+           sodipodi:role="line"
+           id="tspan2948"
+           x="-348.66278"
+           y="181.70923">90 degrees</tspan></text>
+    </g>
+    <text
+       id="text2968"
+       y="274.91016"
+       x="421.10733"
+       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
+       xml:space="preserve"><tspan
+         y="274.91016"
+         x="421.10733"
+         id="tspan2970"
+         sodipodi:role="line">ooo</tspan></text>
+    <text
+       id="text2972"
+       y="294.25998"
+       x="421.10733"
+       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:end;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:end;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
+       xml:space="preserve"><tspan
+         y="294.25998"
+         x="421.10733"
+         id="tspan2974"
+         sodipodi:role="line">ooo</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
+       x="340.69077"
+       y="271.55551"
+       id="text2976"><tspan
+         sodipodi:role="line"
+         id="tspan2978"
+         x="340.69077"
+         y="271.55551">$x$</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
+       x="352.5488"
+       y="277.02844"
+       id="text2980"><tspan
+         sodipodi:role="line"
+         id="tspan2982"
+         x="352.5488"
+         y="277.02844">$y$</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
+       x="365.319"
+       y="283.86963"
+       id="text2984"><tspan
+         sodipodi:role="line"
+         id="tspan2986"
+         x="365.319"
+         y="283.86963">$z$</tspan></text>
+    <path
+       style="fill:none;stroke:black;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 287.16748,387.47104 3.95908,0.57071 c 0.34178,-2.90837 0.97982,-5.73577 1.88034,-8.47543 l -3.70392,-1.25175 c 0,0 -0.29405,1.35279 -1.76248,2.42101 -1.58318,1.15169 -2.91807,-1.86761 -4.43276,-2.32007 -1.46135,-0.43652 -3.27511,0.62227 -3.70951,2.33082 -0.4345,1.70896 0.67715,3.49962 2.19531,3.77666 1.59753,0.29153 4.08657,-1.75143 5.0644,-0.0562 0.90203,1.56384 0.50954,3.0042 0.50954,3.0042 z m 2.1355,-9.15647 3.70392,1.25175 c 0.90052,-2.73966 2.06352,-5.39159 3.45521,-7.94901 l -3.43252,-1.85171 c 0,0 -0.52612,1.28365 -2.1519,2.07843 -1.74205,0.85161 -2.5316,-2.32309 -3.94313,-3.02649 -1.36025,-0.67785 -3.29432,0.0505 -3.98756,1.62986 -0.69385,1.58075 0.0904,3.50645 1.50409,4.04012 1.47536,0.55695 4.26554,-0.96763 4.90598,0.83666 0.59425,1.67417 -0.0541,2.99039 -0.0541,2.99039 z m 3.72661,-8.54897 3.43252,1.85171 c 1.39169,-2.55743 3.01207,-5.02035 4.82734,-7.38201 l -3.14489,-2.37057 c 0,0 -0.72798,1.20609 -2.47643,1.74394 -1.85974,0.57208 -2.15732,-2.70777 -3.45347,-3.62748 -1.25098,-0.88767 -3.27405,-0.46622 -4.19262,0.97755 -0.91965,1.44547 -0.44332,3.47234 0.86151,4.23058 1.35157,0.7854 4.3754,-0.24512 4.70699,1.63215 0.31007,1.75542 -0.56095,2.94413 -0.56095,2.94413 z m 5.11497,-7.90087 3.14489,2.37057 c 1.81528,-2.36165 3.82546,-4.62205 5.99674,-6.7744 l -2.84102,-2.80834 c 0,0 -0.90014,1.12003 -2.73608,1.41754 -1.93893,0.31421 -1.79256,-3.02275 -2.96379,-4.12305 -1.13399,-1.06531 -3.21385,-0.92853 -4.32469,0.3739 -1.11217,1.30399 -0.92374,3.39641 0.26759,4.34804 1.22691,0.98004 4.41533,0.41289 4.46742,2.33033 0.0491,1.80711 -1.01106,2.86541 -1.01106,2.86541 z m 6.30061,-7.21217 2.84102,2.80834 c 2.17128,-2.15236 4.50368,-4.19669 6.96339,-6.12621 l -2.52091,-3.16501 c 0,0 -1.04291,1.02524 -2.93085,1.09924 -1.98181,0.0777 -1.43512,-3.26775 -2.47409,-4.51318 -1.00984,-1.21051 -3.11313,-1.33675 -4.38374,-0.18113 -1.27191,1.1568 -1.35037,3.27819 -0.27771,4.3925 1.1006,1.14332 4.38617,1.00402 4.18729,2.9312 -0.18873,1.82878 -1.4044,2.75425 -1.4044,2.75425 z m 7.2835,-6.48288 2.52091,3.!
 16501 c 2.45971,-1.92953 5.04675,-3.74426 7.72731,-5.43742 l -2.18456,-3.44058 c 0,0 -1.15641,0.92146 -3.06075,0.78904 -1.98975,-0.13836 -1.08362,-3.4419 -1.98436,-4.7979 -0.87899,-1.32326 -2.97145,-1.69082 -4.3698,-0.68751 -1.39936,1.00405 -1.7227,3.11753 -0.77436,4.36396 0.97126,1.27655 4.28929,1.52693 3.86659,3.43477 -0.40326,1.82011 -1.74098,2.61063 -1.74098,2.61063 z m 8.06366,-5.71299 2.18456,3.44058 c 2.68056,-1.69317 5.45465,-3.26477 8.28849,-4.70804 l -1.83198,-3.63506 c 0,0 -1.24064,0.80848 -3.12576,0.48694 -1.9635,-0.33492 -0.73734,-3.54417 -1.49461,-4.97718 -0.74179,-1.40374 -2.78845,-1.99062 -4.28285,-1.14524 -1.49494,0.84568 -2.04034,2.91445 -1.22237,4.26242 0.83755,1.38021 4.12599,1.9811 3.50531,3.84102 -0.59432,1.78091 -2.02079,2.43456 -2.02079,2.43456 z m 8.64107,-4.90252 1.83198,3.63506 c 2.83383,-1.44327 5.7274,-2.75821 8.64692,-3.93805 l -1.46315,-3.74844 c 0,0 -1.2956,0.68613 -3.12588,0.19291 -1.90338,-0.51291 -0.39596,-3.57366 -1.00484,-5.05103 -0.59849,-1.45212 -2.56392,-2.23593 -4.12292,-1.55433 -1.5589,0.68156 -2.30299,2.66912 -1.62172,4.08788 0.69838,1.45438 3.89739,2.36651 3.10346,4.14997 -0.76173,1.7111 -2.24385,2.22603 -2.24385,2.22603 z m 9.01575,-4.05143 1.46315,3.74844 c 0.9122,-0.36864 1.82693,-0.72409 2.74316,-1.06615 1.86737,-0.68365 3.80592,-1.22817 5.79998,-1.66033 l -0.85388,-3.9 c 0,0 -1.34391,0.44674 -3.04394,-0.27892 -1.83377,-0.78274 0.10525,-3.51299 -0.29529,-5.08233 -0.38465,-1.50706 -2.2526,-2.52116 -3.96789,-1.98625 -0.73853,0.23032 -1.3581,0.73301 -1.76459,1.34881 -0.48048,0.76879 -0.63262,1.71399 -0.3316,2.53006 0.28358,0.7688 1.32455,1.51457 2.04471,2.2697 0,0 1e-5,0 1e-5,0 0.59065,0.61581 0.97421,1.25117 0.69175,1.93815 -0.0214,0.0509 -0.0464,0.10216 -0.0754,0.15375 -0.90532,1.61066 -2.41014,1.98507 -2.41014,1.98507 z m 9.15241,-2.87804 0.85388,3.9 c 2.90023,-0.62854 5.91785,-1.0194 9.00461,-1.25495 l -0.30698,-3.99535 c 0,0 -1.42351,0.26401 -3.014,-0.72213 -1.67689,-1.03972 0.63704,-3.48575 0.47624,-5.08575 -0.15616,-1.55388 -1.81919,-2.83894 -3.5336,-2.59367 -1!
 .71934,0..24597 -2.97599,1.9623 -2.69414,3.48174 0.29176,1.57291 3.1063,3.23251 1.87215,4.74041 -1.15614,1.4126 -2.65816,1.5297 -2.65816,1.5297 z m 9.55151,-1.3503 0.30698,3.99535 c 1.64468,-0.12551 3.30898,-0.20692 4.9856,-0.2567 1.48244,-0.0361 2.98436,-0.0459 4.50548,-0.043 l 0.006,-4.00062 c 0,0 -1.47352,0.15651 -2.97704,-0.9852 -1.54067,-1.16991 0.96655,-3.43097 0.955,-5.00994 -0.0106,-1.44859 -1.29117,-2.78822 -2.80191,-2.93638 0,0 0,0 0,0 -0.11479,-0.0117 -0.23066,-0.0165 -0.34705,-0.0139 -1.67229,0.0373 -3.10506,1.57259 -3.01939,3.12112 0.0877,1.58573 2.65965,3.62541 1.26197,4.95065 -1.33939,1.26997 -2.8756,1.17864 -2.8756,1.17864 z m 9.80402,-0.30501 -0.006,4.00062 c 3.25594,0.006 6.59983,0.0704 10.02883,0.0589 l -0.0109,-3.99942 c 0,0 -1.51139,0.1693 -3.01727,-1.00765 -1.49142,-1.16565 1.01944,-3.44524 1.02649,-4.99453 0.007,-1.55602 -1.40167,-3.00904 -2.95509,-3.02403 -1.56047,-0.015 -3.0263,1.42698 -3.03724,2.97405 -0.011,1.55098 2.40111,3.802 0.96248,5.00912 -1.42974,1.19967 -2.99137,0.98299 -2.99137,0.98299 z m 10.012,0.0601 0.0109,3.99942 c 2.33279,-0.008 4.70498,-0.0508 7.11565,-0.17102 1.14455,-0.0536 2.2937,-0.13093 3.44548,-0.23406 l -0.36221,-3.98974 c 0,0 -1.53462,0.31063 -3.14071,-0.77989 -0.0798,-0.0541 -0.1493,-0.11173 -0.20948,-0.17237 -0.47657,-0.48104 -0.36706,-1.15489 -0.097,-1.88084 0,0 0,0 0,0 0.38219,-1.02851 1.05241,-2.12169 0.99468,-2.99975 -0.0592,-0.90087 -0.5771,-1.73734 -1.26609,-2.26358 -0.50494,-0.38301 -1.10986,-0.60953 -1.72768,-0.58752 -1.45903,0.052 -2.83745,1.52144 -2.81706,3.06577 0.0201,1.51927 2.45302,3.77155 1.07518,4.98135 -1.41872,1.24571 -3.02164,1.03223 -3.02164,1.03223 z m 10.20979,-0.3954 0.36221,3.98974 c 3.60283,-0.32262 7.23149,-0.89785 10.82639,-1.79 l -0.95271,-3.87989 c 0,0 -1.48664,0.54711 -3.2394,-0.31083 -1.63527,-0.80044 0.28382,-3.62948 -0.0241,-5.09475 -0.31899,-1.51812 -1.90931,-2.66799 -3.2681,-2.4522 -1.36245,0.21637 -2.5282,1.82055 -2.34771,3.35525 0.17457,1.48443 2.81692,3.52502 1.59956,4.84737 -1.29605,1.40782 -2.95618,1.33531 -2.95618,1.3353!
 1 z m 10.23589,-1.68015 0.95271,3.87989 c 3.25188,-0.80703 6.47613,-1.87338 9.62866,-3.24666 0.32875,-0.14834 0.65565,-0.29946 0.9807,-0.45327 l -1.68908,-3.6213 c 0,0 -0.34462,0.21061 -0.93849,0.35612 -0.58276,0.13987 -1.39874,0.21264 -2.32493,-0.0437 -1.7299,-0.47886 -0.39382,-3.62475 -0.965,-4.99637 -0.59617,-1.43161 -2.33621,-2.26622 -3.57625,-1.83562 -1.24395,0.43197 -2.10619,2.18542 -1.68653,3.66509 0.40166,1.41614 3.31861,3.03797 2.34566,4.51169 -1.05757,1.60188 -2.72745,1.78417 -2.72745,1.78417 z m 9.87299,-3.44134 1.68908,3.6213 c 3.40661,-1.61202 6.61036,-3.52091 9.61469,-5.65655 l -2.3228,-3.24799 c 0,0 -1.17704,1.05653 -3.12299,0.90806 -1.80386,-0.13764 -1.07782,-3.46841 -1.90458,-4.71143 -0.85841,-1.2906 -2.74783,-1.75996 -3.89382,-1.08324 -1.14291,0.6749 -1.62832,2.55882 -0.92408,3.92394 0.67369,1.30591 3.85168,2.31935 3.19376,3.95259 -0.71732,1.78067 -2.32926,2.29332 -2.32926,2.29332 z m 8.98097,-5.28324 2.3228,3.24799 c 3.00434,-2.13564 5.80926,-4.49802 8.41821,-7.017 l -2.78819,-2.88295 c 0,0 -1.00126,1.21105 -2.94569,1.36636 -1.83085,0.14624 -1.60397,-3.26397 -2.62648,-4.37962 -1.05337,-1.14933 -3.01968,-1.30413 -4.07423,-0.41097 -1.05218,0.89117 -1.21314,2.85882 -0.27829,4.08034 0.90006,1.17607 4.21267,1.59499 3.8447,3.34042 -0.39463,1.87193 -1.87283,2.65543 -1.87283,2.65543 z"
+       id="path2992"
+       inkscape:connector-curvature="0"
+       inkscape:path-effect="#path-effect3762"
+       inkscape:original-d="m 284.69306,387.11435 c 3.32015,-23.03245 21.64767,-45.22652 54.77744,-57.05108 29.53536,-10.54165 56.87023,9.24678 87.10615,-25.68985"
+       sodipodi:nodetypes="csc" />
+    <text
+       xml:space="preserve"
+       style="font-size:5.83659029px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:end;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:end;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
+       x="461.30307"
+       y="61.904903"
+       id="text3789"
+       transform="matrix(0.81460626,0.59292254,-0.625247,0.77249217,0,0)"><tspan
+         sodipodi:role="line"
+         id="tspan3791"
+         x="461.30307"
+         y="61.904903">TikZ this$\rightarrow$</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial;opacity:0.50000000000000000;fill:blue"
+       x="397.90738"
+       y="345.14746"
+       id="text2966"><tspan
+         sodipodi:role="line"
+         id="tspan2968"
+         x="397.90738"
+         y="345.14746">transparent</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="640.83459"
+       y="352.96124"
+       id="text3393"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3395"
+         x="640.83459"
+         y="352.96124" /></text>
+    <flowRoot
+       xml:space="preserve"
+       id="flowRoot3395"
+       style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:40px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
+         id="flowRegion3397"><rect
+           id="rect3399"
+           width="66.080772"
+           height="59.586147"
+           x="323.64212"
+           y="353.28906" /></flowRegion><flowPara
+         id="flowPara3401" /></flowRoot>  </g>
+</svg>

Added: trunk/Master/texmf-dist/doc/latex/svg/svg-preamble.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/svg/svg-preamble.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/svg/svg-preamble.tex	2017-03-27 21:47:01 UTC (rev 43625)
@@ -0,0 +1,10 @@
+\documentclass{scrartcl}
+\usepackage{ifxetex}
+\usepackage{ifluatex}
+\ifxetex\else\ifluatex\else
+\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
+\usepackage[T1]{fontenc}
+\fi\fi
+\usepackage{svg}
+\usepackage{relsize}
+\usepackage{hyperref}


Property changes on: trunk/Master/texmf-dist/doc/latex/svg/svg-preamble.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/svg/svg.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/svg/svg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/svg/svg.dtx	2017-03-27 21:43:48 UTC (rev 43624)
+++ trunk/Master/texmf-dist/source/latex/svg/svg.dtx	2017-03-27 21:47:01 UTC (rev 43625)
@@ -1,93 +1,97 @@
+% \CheckSum{3474}
 % \iffalse meta-comment
 %
-% The svg package by Philip Ilten.
+%  svg         -- Include SVG pictures in LaTeX documents using Inkscape
+% ----------------------------------------------------------------------------
+%  svg-extract -- Extract independent graphic files from SVG pictures
+% ----------------------------------------------------------------------------
 %
-% To extract package files and create documentation:
+%  Copyright (C) Philip Ilten <philten at cern.ch>, 2012-2016  
+%  Copyright (C) Falk Hanisch <hanisch.latex at outlook.com>, 2017-
 %
-%      pdflatex -shell-escape svg.dtx
+% ----------------------------------------------------------------------------
 %
-% Please note that Inkscape generates TeX files with comments, and
-% since this document is generated using docstrip which interprets
-% comments, special versions of example.pdf_tex and root.pdf_tex have
-% been provided with the comments removed. This package will fail to
-% compile when example.pdf/example.pdf_tex has an older modification
-% date than example.svg and root.pdf/root.pdf_tex has an older
-% modification date than root.svg as this package will generate new
-% versions of example.pdf_tex and root.pdf_tex with comments.
+%  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.
 %
-% To finish the installation move the following file into a directory
-% searched by LaTeX:
+% ----------------------------------------------------------------------------
 %
-%      svg.sty
-%   
-%% -------------------------------------------------------
-%% Copyright (C) 2012 by Philip Ilten <philten at cern.ch>
-%% -------------------------------------------------------
-%% 
-%% This file may be distributed and/or modified under the conditions
-%% of the LaTeX Project Public License, either version 1.3 of this
-%% license or (at your option) any later version. The latest version
-%% of this license is in:
-%%
-%%     http://www.latex-project.org/lppl.txt
-%%
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainer of this work is Philip Ilten.
-%%
-%% This work consists of the files README, svg.dtx (with derived files
-%% svg.sty, svg.pdf, Fig.1a.pdf, Fig.1b.eps, Fig.2.pdf, Fig.2.png),
-%% preamble.tex, example.svg (with derived files example.pdf and
-%% example.pdf_tex), and root.C (with derived files root.svg,
-%% root.pdf, and root.pdf_tex).
-%%
-%% The following files constitute the svg package and should be
-%% distributed as a whole: README, svg.dtx, svg.sty, svg.pdf,
-%% Fig.1a.pdf, Fig.1b.eps, Fig.2.pdf, Fig.2.png, preamble.tex
-%% example.svg, example.pdf, example.pdf_tex, root.C, root.svg,
-%% root.pdf, and root.pdf_tex.
-% \fi
-% \iffalse
 %<*batchfile>
+\ifx\documentclass\@undefined
+\input docstrip.tex
+\keepsilent
+
 \begingroup
-\input docstrip
-\keepsilent
-\usedir{tex/latex/svg}
-\preamble
+\catcode`\^^M=13 \catcode`\ =12 %
+\gdef\svgpreamble{%
+Copyright (C) Philip Ilten <philten at cern.ch>, 2012-2016  
+Copyright (C) Falk Hanisch <hanisch.latex at outlook.com>, 2017-
+
+This file was generated from file svg.dtx.
+----------------------------------------------------------------------------
+
+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).
+}
+\endgroup
+
+\declarepreamble\svgbasepreamble
+
+svg -- Include SVG pictures in LaTeX documents using Inkscape
+
+\svgpreamble
+
 \endpreamble
+\declarepreamble\svgextractpreamble
+
+svg-extract -- Extract independent graphic files from SVG pictures
+
+\svgpreamble
+
+\endpreamble
 \askforoverwritefalse
-\generate{\file{svg.sty}{\from{svg.dtx}{svg}}}
-\endgroup
+\usedir{tex/latex/svg}
+\generate{%
+  \usepreamble\svgbasepreamble
+  \file{svg.sty}{%
+    \from{svg.dtx}{package,option,base}%
+    \from{svg.dtx}{package,body,base}%
+  }
+  \usepreamble\svgextractpreamble
+  \file{svg-extract.sty}{%
+    \from{svg.dtx}{package,option,extract}%
+    \from{svg.dtx}{package,body,extract}%
+  }
+%  \usepreamble\defaultpreamble
+%  \file{svg-old.sty}{%
+%    \from{svg.dtx}{package,old}%
+%  }
+}
+\else
+\let\endbatchfile\relax
+\fi
+\endbatchfile
 %</batchfile>
+%
 % \fi
-% \iffalse
-%<*driver>
-\ProvidesFile{svg.dtx}
-\documentclass{ltxdoc}
-\usepackage{svg}
-\usepackage{relsize}
-\usepackage{xcolor}
-\usepackage{transparent}
-\usepackage{listings}
-\usepackage{xspace}
-\usepackage[bookmarks=true,colorlinks=true,linkcolor=black,citecolor=black,
-urlcolor=blue]{hyperref}
-\EnableCrossrefs         
-\CodelineIndex
-\RecordChanges
-\begin{document}
-  \DocInput{svg.dtx}
-  \PrintChanges
-  \PrintIndex
-\end{document}
-%</driver>
-% \fi
 %
-% \CheckSum{0}
-%
 % \CharacterTable
 %  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
 %   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -104,292 +108,1041 @@
 %   Grave accent  \`     Left brace    \{     Vertical bar  \|
 %   Right brace   \}     Tilde         \~}
 %
+% \iffalse
+%<*driver>
+\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{svg.dtx}[%
+%</driver>
+%<package&option>\NeedsTeXFormat{LaTeX2e}
+%<package&option&base>\ProvidesPackage{svg}[%
+%<package&option&extract>\ProvidesPackage{svg-extract}[%
+%<*driver|package&option>
+  2017/03/27 v2.00\space%
+%<package&option&base>  (include SVG pictures)%
+%<package&option&extract>  (extract independent graphics from SVG pictures)%
+]
+%</driver|package&option>
+%<*driver>
+\documentclass[english,xindy]{tudscrdoc}[2017/03/27]
+\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
+\usepackage[T1]{fontenc}
+\usepackage{babel}
+\KOMAoptions{parskip=half-}
+\usepackage{marginnote}
+
+\usepackage{svg}
+\usepackage{svg-extract}
+\svgpath{{./examples/}}
+\svgsetup{extractpreamble=svg-preamble.tex,clean=true}
+
+\usepackage{xpatch}
+\ifdefined\includesvg
+  \xpretocmd{\includesvg}{\MakePercentComment}{}{}
+  \xapptocmd{\includesvg}{\MakePercentIgnore}{}{}
+\fi
+\ifdefined\includeinkscape
+  \xpretocmd{\includeinkscape}{\MakePercentComment}{}{}
+  \xapptocmd{\includeinkscape}{\MakePercentIgnore}{}{}
+\fi
+\pdfsuppresswarningpagegroup=1
+
+\usepackage{listings}
+\lstset{%
+  inputencoding=utf8,extendedchars=true,
+  literate=%
+    {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
+    {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
+    {~}{{\textasciitilde}}1 {ß}{{\ss}}1
+}
+\newcommand*\svglstbelowskip{\medskipamount}
+\AtBeginDocument{%
+  \edef\svglstbelowskip{\the\glueexpr\medskipamount-\parskip\relax}
+}
+\lstdefinestyle{svg}{%
+%  language=[LaTeX]TeX,%
+  basicstyle=\small\ttfamily,%
+  columns=flexible,%
+  frame=single,%
+  backgroundcolor=\color{yellow!10},%
+  xleftmargin=\fboxsep,%
+  xrightmargin=\fboxsep,%
+  gobble=2,%
+  escapechar=§,
+  belowskip=\svglstbelowskip,%
+}
+\lstnewenvironment{svgexample}[1][]{%
+  \lstset{style=svg,#1}%
+}{}
+\usepackage{enumitem}
+\newlist{DescribeValues}{description}{1}
+\setlist[DescribeValues]{font=\normalfont\val,style=nextline,noitemsep}
+
+\usepackage{subcaption}
+\usepackage{relsize}
+
+\usepackage{bookmark}
+\usepackage[babel]{microtype}
+
+%\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{svg.dtx}
+\title{The packages \pkg{svg} and \pkg{svg-extract}}
+\author{%
+  Philip Ilten (2012--2016) \\
+  Falk Hanisch (2017--) \\
+  \url{https://github.com/mrpiggi/svg} \\
+  \mailto{hanisch.latex at outlook.com}
+}
+\date{\fileversion\nobreakspace(\filedate)}
+
+\begin{document}
+  \maketitle
+  \begin{abstract}
+    \noindent
+    The \pkg{svg} package is intended for the automated integration of 
+    SVG~graphics into \LaTeX~documents. Therefor the capabilities provided 
+    by \app{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. The two commands \cs{includesvg} and 
+    \cs{includeinkscape} are provided as central user\hbox{-}interface, 
+    which are very similar to the \cs{includegraphics} command of the 
+    \pkg{graphicx} package.
+    
+    In addition, the package \pkg{svg-extract} allows the extraction of these 
+    graphics into independent files in different graphic formats, exactly as it 
+    is rendered within the document. For the creation of these graphics in the 
+    well\hbox{-}known formats PDF, EPS and~PS, \LaTeX and possibly conversion 
+    tools shipped with the distribution are used. If the graphics are required 
+    in other file formats, either \app{ImageMagick} or \app{Ghostscript} can be 
+    invoked.
+  \end{abstract}
+  \tableofcontents
+  \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
 %
-% \changes{v1.0}{2004/11/05}{Initial version}
+% \changes{v1.0}{2004/11/05}{initial version by Philip Ilten}
+% \changes{v2.00}{2016/09/23}{new maintainer: Falk Hanisch}
+% \changes{v2.00}{2017/03/27}{re-implementation from scratch}
+% \changes{v2.00}{2017/03/27}{package \pkg{subfig} not required anymore}
+% \changes{v2.00}{2017/03/27}{%
+%   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
+% }
 %
-% \GetFileInfo{svg.sty}
 %
-% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \part{User documentation}
+% \section{Introduction}
+%
+% The open source program \app{Inkscape} has provided an excellent resource for 
+% the simple and easy creation of images and diagrams using a graphical user
+% interface. The work by Johan\,B.\,C.~Engelen has further enhanced the ability
+% of \app{Inkscape} to split a SVG~file into a text component that can be
+% compiled with \LaTeX, and an image component that can be imported as a 
+% PDF~file. For further information see the documentation of 
+% \hrfn{http://www.ctan.org/pkg/svg-inkscape}{\pkg{svg-inkscape} on CTAN}.
+% The procedure described therein is taken up and consistently expanded. Thus, 
+% it is now possible to include a SVG~file into a \LaTeX~document where the
+% text within the SVG~graphic will be rendered natively by \LaTeX.
 % 
-% \makeatletter
-% \def\DescribeOption#1{\leavevmode\@bsphack
-% \marginpar{\raggedleft\PrintDescribeOption{#1}}%
-% \SpecialOptionIndex{#1}\@esphack\ignorespaces}
-% \def\PrintDescribeOption#1{\strut\emph{option}\\\MacroFont #1\ }
-% \def\SpecialOptionIndex#1{\@bsphack
-% \index{#1\actualchar{\protect\ttfamily#1}
-% (option)\encapchar usage}%
-% \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar
-% usage}\@esphack}
-% \def\DescribeOptions#1{\leavevmode\@bsphack
-% \marginpar{\raggedleft\strut\emph{options}%
-% \@for\@tempa:=#1\do{%
-% \\\strut\MacroFont\@tempa\SpecialOptionIndex\@tempa
-% }}\@esphack\ignorespaces}
-% \makeatother
-% \lstnewenvironment{example}{%
-% \lstset{basicstyle=\footnotesize\ttfamily,columns=flexible,frame=single,%
-% backgroundcolor=\color{yellow!20},xleftmargin=\fboxsep,%
-% xrightmargin=\fboxsep,gobble=1}}{}
+% Both packages \pkg{svg} and \pkg{svg-extract} rely heavily upon executing 
+% commands from the shell using the \cs{ShellEscape} command---or respectively 
+% the old known \cs{write18}---for executing a variety of commands directly to 
+% the system. So it is necessary to include the flag \file{-{}-shell-escape} 
+% when compiling documents using \pkg{svg} and/or \pkg{svg-extract}. The 
+% executed commands and the possibilities to adapt their invocation with the 
+% appropriate options are described later on in this documentation. All this is 
+% done automatically with the \cs{includesvg} command. If you don't want to use
+% the \file{-{}-shell-escape} flag, either for security reasons or because
+% the export of the SVG~files is done in another way, there's also the command
+% \cs{includeinkscape} which includes files already exported by \app{Inkscape}.
 %
-% \newcommand{\svg}{{\sc svg}\xspace}
-% \newcommand{\pdf}{{\sc pdf}\xspace}
-% \newcommand{\eps}{{\sc eps}\xspace}
-% \newcommand{\png}{{\sc png}\xspace}
-% \newcommand{\latex}{\LaTeX\xspace}
-% \newcommand{\croot}{{\sc Root}\xspace}
-% \newcommand{\pdflatex}{{\sc PdfLatex}\xspace}
-% \newcommand{\inkscape}{{\sc Inkscape}\xspace}
-% \newcommand{\pdftops}{{\sc PdfToPs}\xspace}
-% \newcommand{\convert}{{\sc Convert}\xspace}
+% An working installation of \app{Inkscape} is required for the automated 
+% integration of SVG~graphics, whereby the installation path must be 
+% known to the operating system. This can be checked on shell by typing 
+% \file{inkscape -V}. Moreover, there are some required packages which are 
+% loaded by packages \pkg{svg} and \pkg{svg-extract} to provide the 
+% functionallity. These packages are:
+% \begin{description}[parsep=.5\smallskipamount]
+% \item[\pkg{scrbase}]
+%   for the definition and handling of options in key-value-syntax
+% \item[\pkg{ifluatex}, \pkg{ifpdf}, \pkg{ifxetex}]
+%   for flow control depending on the used \LaTeX~engine
+% \item[\pkg{pdftexcmds}, \pkg{shellesc}]
+%   to allocate the same primitives independent of the used \LaTeX~engine
+% \item[\pkg{ifplatform}]
+%   to control the file~access depending on the operating system
+% \item[\pkg{graphicx}]
+%   for including the graphic~files after the \app{Inkscape}~export
+% \item[\pkg{xcolor},\pkg{transparent}]
+%   are possibly needed by the separate \LaTeX~files created by \app{Inkscape}
+% \item[\pkg{xr}]
+%   is used by \pkg{svg-extract} in order to include labels within the 
+%   independent graphic~files 
+% \end{description}
 %
-% \title{The \textsf{svg} Package}
-% \author{Philip Ilten \\ \texttt{philten at cern.ch}}
-% \date{\fileversion\ (\filedate)}
-% \maketitle
-% \tableofcontents
-% \section{Introduction}\label{sec:intro}
+% If you want to pass options to package \pkg{graphicx}, you must either load 
+% it before package \pkg{svg}
+% \begin{svgexample}
+%   \usepackage§\oarg{options}§{graphicx}
+%   §\dots§
+%   \usepackage§\oarg{options}§{svg}
+% \end{svgexample}
+% or use \cs{PassOptionsToPackage}.
+% \begin{svgexample}
+%   \PassOptionsToPackage§\marg{options}§{graphicx}
+%   §\dots§
+%   \documentclass§\oarg{options}\marg{class}§
+%   §\dots§
+%   \usepackage§\oarg{options}§{svg}
+% \end{svgexample}
+% The usage of packages \pkg{xcolor} and \pkg{transparent} can be switched off 
+% while loading package \pkg{svg}. See the two options \opt{usexcolor} and 
+% \opt{usetransparent} below.
 %
-% The open source program \inkscape has provided an excellent resource
-% for the simple and easy creation of images and diagrams using a
-% graphical user interface. The work by Johan B. C. Engelen has
-% further enhanced the ability of \inkscape to split an \svg into a
-% text component that can be imported into \latex, and an image
-% component that can be imported as a \pdf.\footnote{For further
-% information see the |svg-inkscape| documentation on
-% \href{http://www.ctan.org/tex-archive/info/svg-inkscape}{CTAN}.}
-% Consequently it is now possible to include an \svg into a \latex
-% document where the text within the \svg has been rendered natively
-% by \latex.
 %
-% The purpose of this package is twofold. First, the syntax of the
-% command |\includegraphics| from the |graphicx| package has been
-% extended to an |\includesvg| command, which allows the specification
-% of the \svg width and height using keys in an optional first
-% argument. Second, this package allows for the extraction of the
-% \svg, as rendered within the \latex document, to an independent
-% image file. This is particularly useful when attempting to provide
-% images to journals or collaborators, and one wishes the image to
-% appear exactly as it does within the original \latex document.
 %
-% There is actually a third purpose to this package, which will almost
-% certainly be relevant to experimental particle physicists only, who
-% frequently use the analysis package \croot. Further details on how to
-% obtain beautiful \croot plots using this package are given in Section
-% \ref{sec:root}.
+% \section{Usage of package \pkg{svg}}\label{sec:inkscape}
 %
-% This documentation is broken into five parts: an explanation of the
-% usage is given in Section \ref{sec:usage}, an example is given in
-% Section \ref{sec:example}, further details with use in \croot is
-% given in Section \ref{sec:root}, and finally, the full
-% implementation is given in Section \ref{sec:implementation} which
-% hopefully should not need to be read.
+% The purpose of this package is to include SVG~graphics into a \LaTeX~document.
+% The command \cs{includesvg} is defined which does all necessarry steps for
+% this task. It first launches the export of a SVG~file to a supported 
+% file~format with Inkscape, if necessary, and includes the exported 
+% graphic~file afterwards. The usage and the syntax is quite similiar to the
+% command \cs{includegraphics} from the \pkg{graphicx} package. In fact, the
+% inclusion of the exported graphic~file is done with \cs{includegraphics}.
 %
-% There is one further point which is important to mention. This
-% package relies heavily upon executing commands from the shell using
-% the |\write18| command, and so it is necessary for the flag
-% |-shell-escape| to be included when compiling documents using this
-% package. Additionally, this package requires a working installation
-% of \inkscape and \pdflatex in order for an \svg to be included or
-% extracted to a \pdf. In order to extract to \eps and \png formats,
-% the programs \pdftops and \convert (part of ImageMagick) must be
-% installed respectively. Finally, this package will not work on
-% Windows, but should run on any *nix platform as long as the paths to
-% the appropriate programs are correctly defined.
+% \DescribeOptions{usexcolor,usetransparent,noxcolor,notransparent}
+% The packages \pkg{xcolor} and \pkg{transparent} are loaded by default at the 
+% end of package \pkg{svg}. The listed options are intended to prevent these 
+% packages from loading. They are the only options which have to be given while
+% loading the \pkg{svg} package. All supported boolean values
+% (\val{true/on/yes/false/off/no}) can be assinged to \opt{usexcolor} and 
+% \opt{usetransparent}, while \opt{noxcolor} and \opt{notransparent} don't
+% accept any value.
+% \begin{svgexample}
+%   \usepackage§\oarg{options}§{svg}
+% \end{svgexample}
 %
-% \section{Usage}\label{sec:usage}
 %
-% \DescribeMacro{\includesvg} The command to include an \svg is
-% similar to the |\includegraphics| command provided by the |graphicx|
-% package. However, now the command
-% \begin{example}
-%   \includesvg[<options>]{<svg filename>}
-% \end{example}
-% is used where |<svg filename>| is the filename of the \svg without
-% the path or the |.svg| postfix.
 %
-% \DescribeMacro{\setsvg} The |<options>|, described in detail below,
-% can be specified globally for the package
-% \begin{example}
-%   \usepackage[<options>]{svg}
-% \end{example}
-% and reset locally when supplied to the |\includesvg| macro. The
-% options can also be reset globally using the macro |\setsvg|
-% \begin{example}
-%   \setsvg{<options>}
-% \end{example}
-% where |<options>| is a comma separated list of options.
+% \subsection{General settings}
 %
-% \DescribeOptions{width,height,svgpath} The width of the \svg can be
-% specified via the |width| option and the height by the |height|
-% option. If both the width and height are specified, the width will
-% be used and the height will be rescaled to match the aspect ratio of
-% the \svg. The path to the \svg can be specified using the |svgpath|
-% option, where the path must terminate in a |/|. The default
-% |svgpath| is set to the current directory, |./|.
+% \DescribeMacro{\svgsetup}
+% All other options described in detail below can also be changed after loading 
+% the package either in the preamble or within the document. They don't have to 
+% be given as optional argument to \cs{usepackage}\oarg{options}|{svg}| but can 
+% be set by using macro \cs{svgsetup}\marg{options} where \marg{options} is a 
+% comma separated list of options. Settings with \cs{svgsetup} are done in the
+% current scope which means globally or within the current group.
+% \begin{svgexample}
+%   \svgsetup§\marg{options}§
+% \end{svgexample}
+% Further, it's possible to reset any setting locally with the optional 
+% argument of the commands \cs{includesvg}\oarg{options}\marg{svg filename} or
+% \cs{includesvg}\oarg{options}\marg{graphic filename}.
 %
-% \DescribeOptions{pdf,eps,png} The included \svg can be extracted
-% from the document into a \pdf, \eps, or \png independent of the
-% document. The |pdf| flag enables \pdf extraction, while the |eps|
-% and |png| flags enable \eps and \png extraction respectively. For
-% example,
-% \begin{example}
-%   \includesvg[pdf,eps,<additional options>]{<svg filename>}
-% \end{example}
-% will extract the \svg to both \pdf and \eps formats By default, all
-% of these flags are set to false and no extraction of the \svg is
-% performed. The extraction will render the \svg to the specified
-% output(s) of choice using the same size as specified within the
-% |\includesvg| command. Consequently, the scale between the image and
-% text in the extracted output(s) will remain identical to the scale
-% within the document from which the \svg was extracted.
+% \DescribeMacro{\svgpath}
+% Most likely you want to organize your SVG~files in a separate folder either 
+% as a subfolder in the working directory or elsewhere in your local folder 
+% structure. For this purpose, a list of root paths to SVG~files can be
+% specified using the \cs{svgpath} command in the same way as \cs{graphicspath}
+% is used. Every path has to be given in a group of braces |{}|---even if there 
+% is only one---and terminate with |/| last. For example:
+% \begin{svgexample}
+%   \svgpath{{svg/}{/usr/local/svg/}}
+% \end{svgexample}
+% would cause the system to look first in the subdirectory \file{svg/} and 
+% afterwards in the absolute path \file{/usr/local/svg/}. Further, if no path 
+% was specified with \cs{svgpath} or the desired file wasn't found, all
+% directories given with \cs{graphicspath} are searched too. Please keep in 
+% mind that the current working directory is browsed first in any case. It's 
+% recommended to avoid any spaces and/or quotes respectively \cs{dq} both in 
+% paths and file~names, espacially when DVI~output is active.
 %
-% \DescribeOptions{name, path} The root name of the extracted
-% output can be specified with the |name| option. For example,
-% \begin{example}
-%   \includesvg[name=foo,eps,png,<additional options>]{<svg filename>}
-% \end{example}
-% will extract the \svg to the files |foo.eps| and |foo.png| in the
-% current directory. By default, |name| is set to
-% |Fig.\arabic{svgfigure}\alph{subfigure}| and so any \svg included
-% within a |figure| or |subfigure| environment will automatically be
-% labeled; i.e. if an \svg is included in the first figure and second
-% subfigure of the document, and \pdf extraction was requested, the
-% \svg will be extracted to the file |Fig.1b.pdf|. A path for the
-% extracted files can also be specified with the |path| option, which
-% must terminate with a |/|. The default |path| is set to the current
-% directory, |./|.
 %
-% \DescribeOptions{clean,exclude} Because a large number of files is
-% generated for each \svg extraction, it is oftentimes desirable to
-% automatically remove the temporary files. Using the option |clean|
-% will remove any generated files created other than the extracted
-% output(s) requested. The |clean| option is by default set as |false|
-% to enable debugging. Additionally, sometimes it may be necessary to
-% export an \svg without including it in the current document. If the
-% flag |exclude| is specified, the \svg will not be rendered in the
-% current document, but will be extracted to the requested output(s).
 %
-% \DescribeOptions{pretex,postex} Commands prior and post to the
-% inclusion of the \svg may be desired, such as font or color
-% commands. For example, to change the text size of the include \svg
-% text one could use
-% \begin{example}
-%   {\tiny \includsvg[<options>]{<svg filename>}}
-% \end{example}
-% where now the text will be rendered in the font size specified by
-% |\tiny|. In this example, however, the |\tiny| command would not be
-% included in the extracted output and so the options |pretex| and
-% |postex| are provided where the \latex provided to |pretex| is
-% included before the \svg, and |postex| after the \svg. Consequently,
-% the example above can be rewritten as
-% \begin{example}
-%   \includsvg[pretex=\tiny,<additional options>]{<svg filename>}
-% \end{example}
-% where now the changed font size will be propagated to the extracted
-% output.
+% \subsection{Options for the invocation of \app{Inkscape}}
 %
-% \DescribeOptions{preamble,end} Specialized \latex macros can be used
-% in the \svg which can then be defined in the preamble of the \latex
-% document in which the \svg is to be included. Additionally,
-% specialized packages such as |\relsize| may be needed by the \latex
-% code extracted from the \svg. Consequently, the preamble of the
-% current \latex document is used for the extraction of the \svg by
-% default. It is possible, however, to specify a different preamble
-% with the option |preamble| where the file to use as the preamble
-% (including path and postfix) is given as the argument. The default
-% definition of |preamble| is |\jobname.tex|, and should suffice for
-% most cases. The preamble up to the line defined by the option
-% |end| will be used, which is set to a default of
-% |\begin{document}|. Notice that an exact match must be made, and so
-% if any comments or text are on the same line after the
-% |\begin{document}|, the preamble will not be correctly extracted.
+% \DescribeOption{inkscape}
+% This option controls, when the export with \app{Inkscape} is invoked and is 
+% set to \val{true} by default.
+% \begin{DescribeValues}
+% \item[false/off/no]
+%   \app{Inkscape} won't be invoked in any case, no export is done.
+% \item[\textbf{true}/on/yes/newer/onlynewer]
+%   The export with \app{Inkscape} will only be done, if the exported 
+%   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}.
+% \item[forced/force/overwrite]
+%   The \app{Inkscape}~export will definitely be done, any already existing 
+%   exported file will overwritten regardlessly.
+% \end{DescribeValues}
+% 
+% In addition to controlling the export behavior, the option \opt{inkscape} can 
+% also be used to make additional settings, which then acts as a wrapper for 
+% the options described below.
 %
-% \DescribeOptions{inkscape, pdflatex, pdftops, convert} A variety of
-% commands are executed directly to the system, via |\write18| using
-% this package and consequently, it may be necessary to change the
-% binary paths and options for each individual command. For the
-% inclusion of an \svg, \inkscape is used to separate the text and
-% image from the \svg and can be set using the |inkscape| option. By
-% default the |inkscape| option is set to |inkscape -z -C| which
-% performs a non-gui export of \svg page (notice that the |-C| option
-% indicates page and not drawing). For the extraction of a \pdf,
-% the \latex program is used which is set by the |pdflatex| option and
-% set to |pdflatex| by default. The extraction of an \eps is performed
-% by converting a \pdf to an \eps using \pdftops. This command is set
-% with the |pdftops| option and is set by default to
-% |pdftops -eps|. Finally, conversion to \png is accomplished via the
-% \convert program which is set with the |convert| option and by
-% default set to |convert -density 300| where |-density|
-% controls the resolution of the extracted \png in dots per inch.
+% \begin{DescribeValues}
+% \item[pdf/eps/ps/png]
+%   see \opt{inkscapeformat}|=|\val{pdf/eps/ps/png}
+% \item[latex/nolatex]
+%   see \opt{inkscapelatex}|=|\val{true/false}
+% \item[drawing/page]
+%   see \opt{inkscapearea}|=|\val{drawing/page}
+% \item[\meta{integer}dpi]
+%   see \opt{inkscapedpi}|=|\val{\meta{integer}}
+% \end{DescribeValues}
 %
+% \DescribeOption{inkscapepath}
+% The option \opt{inkscapepath} specifies, where the resulting files of the
+% \app{Inkscape}~export should be located. The subfolder \file{./svg-inkscape/} 
+% within the current working directory is used by default 
+% (\opt{inkscapepath}|=|\val{basesubdir}).
+% \begin{DescribeValues}
+% \item[svgdir/svgpath]
+%   The PDF/EPS/PS/PNG~graphic~files as well as the \LaTeX~files generated by 
+%   \app{Inkscape} will be located in the same directory as the corresponding
+%   SVG~file.
+% \item[svgsubdir/svgsubpath]
+%   Within the folder of the encountered SVG~file, all exported files will be 
+%   located in a subfolder named \file{svg-inkscape/}.
+% \item[basedir/basepath/jobdir/jobpath]
+%   All exported files will be located in the current working directory.
+% \item[\textbf{basesubdir}/basesubpath/jobsubdir/jobsubpath]
+%   A subfolder named \file{svg-inkscape/} within the current working directory 
+%   will be used for files generated by \app{Inkscape}.
+% \item[/path/to/somewhere/]
+%   It is also possible to give a custom path, either relative to the current 
+%   working directory (\file{./relative/path/}) or as an absolute path.
+% \end{DescribeValues}
 %
-% \section{Example}\label{sec:example}
+% \DescribeOption{inkscapeexe}
+% For the inclusion of a SVG~file, \app{Inkscape} is used to separate the text
+% and image from the SVG~file itself. In order to execute the command line tool 
+% from shell, the path where the executable is located has to be known to the
+% operating system. You can check this by typing \file{inkscape -V} into the 
+% shell. If this check fails and you don't want to change environment variable
+% \file{path} on your OS, you can use option \opt{inkscapeexe} to set the 
+% absolute path where the executable of \app{Inkscape} is located. The option 
+% is set to \opt{inkscapeexe}|=|\val{inkscape} by default.
+% 
+% \DescribeOption{inkscapeformat}
+% With this option, the \app{Inkscape}~export~format can be controlled. Valid 
+% values are \val{pdf}, \val{eps}, \val{ps} and \val{png}, where a \LaTeX~export
+% is not possible for \val{png} and option \opt{inkscapelatex} won't have any 
+% effect. By default, \opt{inkscapeformat}|=|\val{pdf} is set unless DVI~output
+% was detected. In this case \opt{inkscapeformat}|=|\val{eps} is the default
+% setting.
 %
-% As an example\footnote{The image used here is a slightly modified
-% version of the image used in the initial documentation on how to
-% include an \svg in \latex by J. Engelen available on
-% \href{http://www.ctan.org/tex-archive/info/svg-inkscape}{CTAN}.}
-% take the following lines of code
-% \begin{example}
+% \DescribeOption{inkscapelatex}
+% If option \opt{inkscapelatex}|=|\val{true} is set, the output is split into 
+% a seperate PDF/EPS/PS~file (see option \opt{inkscapeformat}) and a 
+% corresponding \LaTeX~file. This is the default setting. Setting 
+% \opt{inkscapelatex}|=|\val{false} will result in a single PDF/EPS/PS~file,
+% where any contained text won't be rendered by \LaTeX. 
+%
+% \DescribeOption{inkscapearea}
+% This option controls which area of the SVG~file should be exported, 
+% \val{drawing} is set by default.
+% \begin{DescribeValues}
+% \item[\textbf{drawing}/crop]
+%   The area exported corresponds to the bounding box of all objects in a
+%   drawing, including any that are not on the page.
+% \item[page/nocrop]
+%   The area exported will correspond to the defined page~area within the
+%   SVG~file.
+% \end{DescribeValues}
+%
+% \DescribeOption{inkscapedpi}
+% The resolution used either for PNG~export or for fallback rasterization of 
+% filtered objects when exporting to PDF/EPS/PS~file. For PNG~export it is set 
+% to 300\,dpi by default, if no value was given. The given value should be a 
+% positive integer. The default behaviour can be reversed after a given value
+% with \opt{inkscapedpi}|=|\val{\cs{relax}}.
+%
+% \DescribeOption{inkscapeopt}
+% You can use this option to pass additional switches to the \app{Inkscape} 
+% command line tool. For further information see the documentation of 
+% \hrfn{https://inkscape.org/de/doc/inkscape-man.html}{\app{Inkscape}}.
+%
+%
+%
+% \subsection{Options for the graphic inclusion}
+%
+% \DescribeOptions{width,height,scale}
+% The width of the included graphic~file can be specified via the \opt{width} 
+% option and the height by the \opt{height} option. If both the width and
+% height are specified, the figure won't be distort but scaled such that
+% neither of the specified dimensions is exceeded. If \opt{width} and/or 
+% \opt{height} once have been set, this can be reversed by setting them to 
+% \val{0pt} or \cs{relax}.
+%
+% If neither \opt{width} nor \opt{height} are set, the included graphic~file 
+% can also be scaled by setting \opt{scale} to a positive real number.
+%
+% \DescribeOptions{pretex,apptex}
+% Commands prior and post to the inclusion of the graphic~file may be desired, 
+% such as font or color commands. The options \opt{pretex} and \opt{apptex} are
+% provided where the \LaTeX~code given to \opt{pretex} is included before the 
+% graphic~file and \opt{apptex} right afterwards. For example, to change the 
+% size of the included text one could use:
+% \begin{svgexample}
+%   \includsvg[pretex=\tiny,§\meta{additional options}§]§\marg{svg filename}§
+% \end{svgexample}
+%
+% \DescribeOption{draft}
+% This option can be used with booelan values and is equal to the identically 
+% named option of the \pkg{graphicx} package. If the \opt{draft} option is
+% given to \pkg{graphicx}, it's activated for \pkg{svg} as well.
+%
+% \DescribeOption{lastpage}
+% A \hrfn{https://bugs.launchpad.net/ubuntu/+source/inkscape/+bug/1417470}{bug} 
+% concerning the \LaTeX~export has been reported for \app{Inkscape}~0.91. It 
+% may happen that within the \LaTeX~file exported by \app{Inkscape}, it is 
+% attempted to include more pages of the PDF~graphics than actually exist. The
+% \pkg{svg} package attempts to bypass the resulting error.
+%
+% Consequently, the total number of pages is read and only existing PDF~pages
+% are included, if both options \opt{inkscapeformat}|=|\val{pdf} and 
+% \opt{lastpage}|=|\val{true} are set. This is the default setting and can be
+% switched off with \opt{lastpage}|=|\val{false}. It's also possible to set the 
+% number of the last page included of a PDF~graphic manually as optional
+% parameter for \cs{includesvg} or \cs{includeinkscape}. For details, see the
+% description of the respective commands.
+%
+%
+%
+% \subsection{Including SVG~files}
+%
+% \DescribeMacro{\includesvg}
+% The command \cs{includesvg} to include a SVG~file is quite similar to the 
+% \cs{includegraphics} command provided by the \pkg{graphicx} package.
+% \begin{svgexample}
+%   \includesvg§\oarg{parameters}\marg{svg filename}§
+% \end{svgexample}
+%
+% \begin{DescribeParameterParent}{Macro}{\includesvg}
+% \DescribeParameters{%
+%   inkscape,inkscapeformat,inkscapelatex,inkscapearea,inkscapedpi,inkscapeopt,%
+%   width,height,scale,pretex,apptex,draft,%
+% }
+% It is used right in the same way but where \marg{svg filename} is the 
+% file~name of the SVG~file, where any given file~extension will be replaced
+% with \file{.svg} ruthlessly. If this file is not located in the current 
+% working directory but elsewhere on your file~system, the command \cs{svgpath}
+% could be used to specify this path. It is recommended to avoid any spaces
+% and/or quotes respectively \cs{dq} both in paths an file~names. Espacially 
+% when DVI~output is active using quotes will certainly cause an error. 
+%
+% The command \cs{includesvg} is intended to do an automated export with 
+% \app{Inkscape} at first, where the given SVG~file is exported to a
+% 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.
+% 
+% 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 
+% optional parameters specified have an effect only once when \cs{includesvg}
+% is executed and remain unchanged afterwards.
+%
+% \DescribeParameter{lastpage}
+% In addition to the use of boolean values, the parameter \prm{lastpage} can 
+% also be assigned a specific (integer) page number, which defines the last
+% used page of a PDF~graphic. This, just like the identically named option, has 
+% an effect only when \prm{inkscapeformat}|=|\val{pdf} is set.
+%
+% \DescribeParameters{angle,origin}
+% Both parameters correlate to the identically named parameters of the  
+% \cs{includegraphics} command provided by the \pkg{graphicx} package. However,
+% unlike to \cs{includegraphics}, parameters \prm{angle} and \prm{origin} are
+% \emph{always evaluated after} the parameters \prm{widht}, \prm{height} and
+% \prm{scale} by \cs{includesvg}, regardless of the used order of the given
+% parameters. This is mainly due to the inclusion of the \LaTeX~files 
+% corresponding to the graphic~files generated by \app{Inkscape}.
+% \end{DescribeParameterParent}
+%
+% \DescribeMacro{\includeinkscape}
+% If you don't want to make use of the automated export with \app{Inkscape} but 
+% the user interface provided by the \pkg{svg} package, you can use 
+% \cs{includeinkscape} instead of \cs{includesvg}.  
+% \begin{svgexample}
+%   \includeinkscape§\oarg{parameters}\marg{graphic filename}§
+% \end{svgexample}
+% 
+% \begin{DescribeParameterParent}{Macro}{\includeinkscape}
+% \DescribeParameters{%
+%   inkscapeformat,inkscapelatex,%
+%   width,height,scale,pretex,apptex,draft,lastpage,angle,origin,%
+% }
+% You can use it similar to \cs{includesvg} but \marg{graphic filename} has to 
+% be the filename of the already exported graphic file. If a valid 
+% file~extension (\file{.pdf/.eps/.ps/.png}) is given, the current setting for 
+% \opt{inkscapeformat} is overwritten. It's even possible to specify a 
+% file~extension like \file{.pdf\_tex} to activate \opt{inkscapelatex}.
+% Furthermore, all optional parameters for \cs{includeinkscape} do have the
+% same effect as described before for command \cs{includesvg} once when
+% \cs{includeinkscape} is executed and remain unchanged afterwards.
+% \end{DescribeParameterParent}
+% 
+%
+%
+% \section{Usage of package \pkg{svg-extract}}
+%
+% This package allows the extraction of independent graphic~files out of 
+% SVG~files which have been included and rendered with \LaTeX{} by the 
+% \pkg{svg} package. This is particularly useful when attempting to provide
+% images to journals or collaborators, and one wishes the image to appear
+% exactly as it does within the original \LaTeX~document.
+%
+% In order to extract to PDF, EPS, or PS~files the programs \file{pstoeps}, 
+% \file{pstopdf} and \file{pdftops} are used which are usually provided by most 
+% of the \LaTeXe~distributions. In additon, the command line tools of 
+% \app{ImageMagick} and \app{Ghostscript} can be invoked for converting images 
+% in formats like PNG, JPG, TIF or something else. It's also possible to create 
+% PDF, EPS or PS~files with one of the two programs. Therefor the desired 
+% program---\file{magick} and/or \file{gswin32c}/\file{gswin64c} on Windows 
+% respectively \file{convert} and/or \file{gs} on unix-like operating 
+% systems---must be installed. By typing \file{\meta{program} -{}-version} on 
+% shell, this can be checked.
+%
+% If you want to extract independent graphic~files from included SVG~files, you 
+% only have to load \pkg{svg-extract}. All actions for the extraction process 
+% will be done by using \cs{includesvg} or \cs{includeinkscape}. Without any 
+% additional settings, the extraction will render the SVG~file to the specified 
+% output formats(s) of choice using the same settings as specified within the 
+% two commands. Consequently, the scale between the image and text in the
+% extracted files will remain identical to the scale within the document from 
+% which the SVG~file was extracted.
+%
+% In contrast to package \pkg{svg}, the console commands for graphic extraction 
+% are executed with each LaTeX run by package \pkg{svg-extract} when 
+% \file{-{}-shell-escape} mode is activated. This behaviour can be switched of 
+% with option \opt{extract}|=|\val{false}.
+%
+% \minisec{Important changes}
+%
+% In version~v1.0 of package \pkg{svg} the extracted files were named like the 
+% numbering of the current \env{subfig} environment by default. As package 
+% \pkg{subfig} sometime causes problems and because of the large amount of
+% different \LaTeX~packages which all provide the possibility to include
+% subfigures with very different implemetations, this feature can't be provided
+% reliably by \pkg{svg-extract}. See option \opt{extractname} for further 
+% information. 
+%
+%
+%
+% \subsection{General settings}
+%
+% \DescribeOptions{on,off}
+% This options have to be given while loading the \pkg{svg-extract} package and 
+% are intended to toggle the functionality of this package. As both extracting 
+% and converting independent graphic~files is invoked with every \LaTeX~run 
+% when \file{-{}-shell-escape} is activated, the option \opt{off} can be given  
+% to save compilation time, once the creation of all desired images has been 
+% done and they no longer need to be re-generated. The option \opt{on} can be 
+% used to reactivate functionality of this package. This can also be done by 
+% using \opt{extract}|=|\val{true}/\val{false}.
+%
+% \DescribeMacros{\svgsetup,\includesvg,\includeinkscape}
+% All option described below can be used togehter with \cs{svgsetup} and are
+% then valid in the current scope. There also exist identically named 
+% parameters for the optional arguments of 
+% \begin{svgexample}
+%   \includesvg§\oarg{parameters}\marg{svg filename}§
+%   \includeinkscape§\oarg{parameters}\marg{graphic filename}§
+% \end{svgexample}
+% These parameters have an effect only once when the commands are executed and
+% remain unchanged afterwards.
+% \begingroup
+% \renewcommand*\marginpar[2][]{}%
+% \begin{DescribeParameterParent}{Macro}{\includesvg}
+% \DescribeParameters{%
+%   extract,extractpreamble,extractformat,extractruns,latexopt,%
+%   extractwidth,extractheight,extractscale,extractpretex,extractapptex,%
+%   convert,convertformat,convertdpi,%
+%   magicksetting,magickoperator,gsopt,gsdevice,%
+%   clean,exclude,%
+% }%
+% \end{DescribeParameterParent}
+% \begin{DescribeParameterParent}{Macro}{\includeinkscape}
+% \DescribeParameters{%
+%   extract,extractpreamble,extractformat,extractruns,latexopt,%
+%   extractwidth,extractheight,extractscale,extractpretex,extractapptex,%
+%   convert,convertformat,convertdpi,%
+%   magicksetting,magickoperator,gsopt,gsdevice,%
+%   clean,exclude,%
+% }%
+% \end{DescribeParameterParent}
+% \endgroup
+%
+%
+%
+% \subsection{Extract independent grahic files}\label{sec:extract}
+% \DescribeOption{extract}
+% This option can be used with boolean values. Using \opt{extract}|=|\val{true}
+% activates the functionality for both extracting and converting which is the 
+% default setting, whereas \opt{extract}|=|\val{false} turns it off completely.
+%
+% \DescribeOption{extractpath}
+% The path where the extracted and converted files are located can be specified 
+% with option \opt{extractpath}, whereas \opt{extractpath}|=|\val{basesubdir}
+% is set by default.
+% \begin{DescribeValues}
+% \item[svgdir/svgpath]
+%   The extracted and converted independent graphic~files are located in the 
+%   same directory as the corresponding SVG~file.
+% \item[svgsubdir/svgsubpath]
+%   Within the folder of the encountered SVG~file, all extracted and converted
+%   files will be located in a subfolder named \file{svg-extract/}.
+% \item[basedir/basepath/jobdir/jobpath]
+%   All extracted and converted files will be located in the current working 
+%   directory.
+% \item[\textbf{basesubdir}/basesubpath/jobsubdir/jobsubpath]
+%   A subfolder named \file{svg-extract/} within the current working directory 
+%   will be used for all extracted and converted files.
+% \item[/path/to/somewhere/]
+%   It is also possible to give a custom path, either relative to the current 
+%   working directory (\file{./relative/path/}) or as an absolute path.
+% \end{DescribeValues}
+%
+% \DescribeOption{extractname}
+% It's also possible to change the name for extracted and converted files. The 
+% default setting is \opt{extractname}|=|\val{filenamenumbered}.
+% \begin{DescribeValues}
+% \item[filename/name]
+%   The name of the exported \app{Inkscape}~file is used and the suffix
+%   \file{-extract} is attached.
+% \item[\textbf{filenamenumbered}/namenumbered/numberedfilename/numberedname]
+%   Same as above, but a prefix with the count of extracted files is used
+%   instead of the suffix.
+% \item[numbered/section/numberedsection/sectionnumbered]
+%   The file name is composed by the number of extracted files and the current 
+%   outline numbering.
+% \item[\meta{filename}]
+%   You can use any file name, a given file extension is ignored. Repeatedly 
+%   specifying the same file name will overwrite previously created files.
+% \end{DescribeValues}
+%
+% \DescribeOption{extractformat}
+% The included SVG~file can be extracted from the document into a independent
+% graphic~file of type PDF, EPS or PS. The option can be used with either a
+% single value (\opt{extractformat}|=|\val{pdf}) or a comma separated list. 
+% For example,
+% \begin{svgexample}
+%   \includesvg[extractformat={pdf,eps,ps}]§\marg{svg filename}§
+% \end{svgexample}
+% will extract the SVG~file to both PDF and EPS~formats and generates two 
+% independent graphic~files. By default, \opt{extractformat}|=|\val{pdf} is set 
+% unless DVI~output was detected. In this case \opt{extractformat}|=|\val{eps} 
+% is the default setting.
+%
+% \DescribeOptions{%
+%   extractwidth,extractheight,extractscale,extractpretex,extractapptex,%
+% }
+% These options can be used to overwrite the settings given for the appearance 
+% of a SVG~file within the document. For example, a SVG~file should cover the 
+% entire text width within the document but be extracted to a fixed width, this 
+% can be done with:
+% \begin{svgexample}
+%   \includesvg[width=\textwidth,extractwidth=500pt]§\marg{svg filename}§
+% \end{svgexample}
+% Assigning the value \val{inherit} to one of these options---which is set by 
+% default---leads to the usage of the corresponding option of package \pkg{svg} 
+% (\opt{width}/\opt{height}/\opt{scale}/\opt{pretex}/\opt{apptex}), whereas
+% \opt{extract\dots}|=|\val{\cs{relax}} can be used to ignore a parent option
+% utterly.
+%
+% \DescribeOptions{extractpreamble,extractpreambleend}
+% Within the included and extracted SVG~files any \LaTeX~macro can be used 
+% either defined by the user---this should be done in the preamble of the 
+% \LaTeX~document in which the SVG~file is to be included---or provided by a 
+% package which is loaded. As the extraction process of the SVG~files needs an 
+% auxiliary \LaTeX~file all used packages and commands have to be known within 
+% this file. Consequently, the preamble of the current \LaTeX~document is used 
+% for the extraction of the SVG~file by default.
+% 
+% However, it is possible to specify a different \emph{preamble~file} with the 
+% option \opt{extractpreamble} where the file to use as the preamble is given
+% as the argument---including maybe path, but file~name and file~extension in 
+% any case. The given preamble file is searched similar to SVG~files meaning, 
+% every path given with \cs{svgpath} or \cs{graphicspath} is examined. The 
+% default definition of \opt{extractpreamble} is \file{\cs{jobname}.tex}---more 
+% precisely the file~extension given by option \opt{latexext} is used---and
+% should suffice for most cases. The preamble up to the line defined by the 
+% option \opt{extractpreambleend} will be used, which is set to a default with
+% \cs{begin}|{document}|. 
+%
+% \DescribeMacros{\svghidepreamblestart,\svghidepreambleend}
+% In case, the preamble of the current \LaTeX~document is used, there are maybe 
+% packages included or some parts within the preamble, which should not be used
+% within the separate auxiliary \LaTeX~file. These parts can be excluded if
+% they are enclosed by \cs{svghidepreamblestart} and \cs{svghidepreambleend}.
+%
+% For example, your current \LaTeX~document uses package \pkg{showframe} which 
+% causes some problems with the extraction of independent graphic~files. So you
+% want to get rid of it within the auxiliary \LaTeX~file. This can be done with:
+% \begin{svgexample}
+%   \documentclass§\marg{documentclassname}§
+%   §\dots§
+%   \usepackage{svg-extract}
+%   §\dots§
+%   \svghidepreamblestart
+%   \usepackage{showframe}
+%   \svghidepreambleend
+%   §\dots§
+% \end{svgexample}
+%
+% \DescribeOption{extractruns}
+% When extracting independent grahic~files by compiling the generated auxiliary 
+% \LaTeX~file, it's maybe necessarry to do multiple \LaTeX~runs on this file. 
+% The number of runs can be controlled with option \opt{extractruns}. It's set
+% to \opt{extractruns}|=|\val{2} by default.
+%
+% \DescribeOptions{latexexe,latexopt,latexext}
+% For the extraction of an independent grahic~file, the \LaTeX~program is used
+% which is set by the \opt{latexexe} option. Depending on the \LaTeX~processor 
+% used for the current \LaTeX~document, it is set to either \app{pdflatex}, 
+% \app{lualatex}, \app{xelatex} or \app{latex} by default. It's also possible
+% to specify additional flags or switches for the \LaTeX~runs, which are
+% performed during the extraction process by the \opt{latexopt} option. If you
+% are used to utilize a other file~extension for \LaTeX~files than \file{.tex}, 
+% option \opt{latexext} can be used like \opt{latexext}|=|\val{ltx}.
+%
+% \DescribeOptions{dvipsopt,pstoepsopt,pstopdfopt,pdftoepsopt,pdftopsopt}
+% Depending on the used \LaTeX~processor, the file~type of the extracted 
+% graphic differs. In order to create all formats, requested with option
+% \opt{extractformat}, several converting tools provided by most of the 
+% \LaTeXe~distributions are maybe invoked. These are \file{dvips},
+% \file{ps2eps}, \file{ps2pdf} and/or \file{pdftops} and can't be changed. It's
+% only possible to specify additional switches for every single tool with
+% \opt{dvipsopt}, \opt{pstoepsopt}, \opt{pstopdfopt}, \opt{pdftoepsopt} and
+% \opt{pdftopsopt}.
+%
+% \DescribeOption{clean}
+% During the extraction process many files are generated for each SVG~file 
+% extraction. So it's oftentimes desirable to automatically remove these 
+% temporary files. Using the option \opt{clean}|=|\val{true} will remove any 
+% generated files created other than the extracted output format(s) requested. 
+% Setting \opt{clean}|=|\val{false} is useful for debugging and set by default. 
+% Additionally, it's possible to use option \opt{clean} with a list of
+% file~extensions in order to specify auxiliary files generated by package 
+% \pkg{svg-extract} to be deleted, for example \opt{clean}|=|\val{\{log,aux\}}.
+%
+% \DescribeOption{exclude}
+% Sometimes it may be necessary to extract and/or convert a SVG~file without 
+% including it. If the flag \opt{exclude} is specified, the SVG~file will not 
+% be rendered in the current \LaTeX~document, but will be extracted and/or
+% converted to the requested output format(s).
+%
+%
+%
+% \subsection{Convert extracted grahic files}\label{sec:convert}
+% 
+% Based on the extraction of independent graphic~files, the \pkg{svg-extract} 
+% packages also provides the possibility to convert those extracted graphics in 
+% another format than PDF, EPS or PS with either \app{ImageMagick}---which is 
+% set by default---or \app{Ghostscript}.
+%
+% \DescribeOption{convert}
+% This option can be used to control the invocation of the conversion process. 
+% By default, \opt{convert}|=|\val{false} is set. For Windows, there exist two 
+% different versions of \app{Ghostscript}, either 64\,bit or 32\,bit. If 
+% it is selected as converting tool the 64\,bit~executable is set by default.
+% \begin{DescribeValues}
+% \item[\textbf{false}/off/no]
+%   No conversion is done.
+% \item[true/on/yes]
+%   The conversion will be done with the current chosen converting tool. 
+% \item[magick/imagemagick/convert]
+%   The conversion is activated and \app{ImageMagick} is selected.
+% \item[gs/ghostscript]
+%   The conversion is activated and \app{Ghostscript} is selected.
+% \item[gs64/ghostscript64]
+%   This value activates \app{Ghostscript} as conversion tool and sets
+%   \opt{gsexe}|=|\val{gswin64c}. On unix-like operating systems, the value for
+%   \opt{gsexe} remains unchanged.
+% \item[gs32/ghostscript32]
+%   The same as for the latter case applies, only option
+%  \opt{gsexe}|=|\val{gswin32c} is set on Windows.
+% \end{DescribeValues}
+% 
+% \DescribeOption{convertformat}
+% With this option, the desired output format(s) can be given. Multiple graphic 
+% formats can be specified in a list, for example something like 
+% \opt{convertformat}|=|\val{\{png,jpg,tif\}}. The value specified in 
+% \opt{extractformat} is used as the source format for the conversion. If 
+% \opt{extractformat} itself contains a file~list, the first value within this 
+% list is considered. If \opt{extractformat} is defined empty, the file
+% generated anyway during the extraction is used.
+%
+% \minisec{Settings for specific converting formats}
+%
+% Maybe it's desired to apply varying settings for different output formats. 
+% Therefor some options described below can either be set for all converted 
+% files or for a specific output format. In particular, these are the options
+% \opt{convertdpi} as well as \opt{magicksetting}, \opt{magickoperator}, 
+% \opt{gsdevice} and \opt{gsopt}. All these mentioned options can be used like 
+% either \opt{\meta{option}}|=|\val{\meta{value}} or 
+% \opt{\meta{option}}|=|\val{\{\meta{outputformat}=\meta{value}\}} and even
+% \opt{\meta{option}}|=|\val{\{\meta{outputformat}+=\meta{value}\}} where the 
+% desired output~format is trailed with |+| as inner key.
+%
+% The first variant is applied to all output formats in general. If one of
+% these mentioned options is evaluated and a output format specific value was
+% given like in the second variant, the general setting is overwritten. If the 
+% general setting should be used and extended by an additional output format
+% specific settings, then the third variant is to be used. In this case, no 
+% output format specific setting (second variant) must not have been used.
+%
+% If you want to reverse any setting, you only have to use \cs{relax} as a 
+% value, either for a general option (\opt{\meta{option}}|=|\val{\cs{relax}})
+% or a specific one 
+% (\opt{\meta{option}}|=|\val{\{\meta{outputformat}[+]=\cs{relax}\}}).
+%
+% \DescribeOption{convertdpi}
+% This options controls the used density for all file~formats or a specific one,
+% whether \app{ImageMagick} or \app{Ghostscript} is used for the graphic 
+% conversion. The desired resolution of the converted file is given in dots per
+% inch~(DPI) either as a scalar value (e.g.~\opt{convertdpi}|=|\val{600}) or 
+% with different resolutions in x- and y\hbox{-}direction 
+% (e.g.~\opt{convertdpi}|=|\val{600x400}).
+%
+% As described before, it's also possible to declare a specific resolution for
+% each desired converting format. For example, you want to set different
+% resolution for PNG and JPG~formats and something for all other formats:
+% \begin{svgexample}
+%   \svgsetup{%
+%     convertdpi={png=600},%
+%     convertdpi={jpg=150},%
+%     convertdpi=300%
+%   }%
+% \end{svgexample}
+% If a setting for a specific output format is given, any unspecific setting is 
+% overwritten, when the conversion to this format is done. With 
+% \opt{convertdpi}|=|\val{\{\meta{outputformat}=\cs{relax}\}} a specific 
+% setting can be reversed.
+%
+% Please note that not every graphic format support different resolutions in x- 
+% and y\hbox{-}direction. So using a value like \opt{convertdpi}|=|\val{600x400}
+% may not necessarily lead to the desired result. However, this is then due to
+% the used conversion tool and not to the processing of the option.
+%
+%
+% \subsubsection{Settings for the invocation of \app{ImageMagick}}
+%
+% \DescribeOptions{magickexe,magicksetting,magickoperator}
+% The conversion with \app{ImageMagick} via the \file{magick} or \file{convert} 
+% command-line~tool can be controlled with these options. The option
+% \opt{magickexe} determines the used executable and is set to \file{magick} on
+% Windows and otherwise to \file{convert} by default. Additionally, there are
+% the two options \opt{magicksetting} and \opt{magickoperator} which can be
+% used to define \emph{settings} and \emph{operators} for the conversion
+% process. As described before, the two options \opt{magicksetting} and 
+% \opt{magickoperator} can be set for all output formats or a \emph{specific}
+% one either resetting or extending the general settings. For further 
+% information see the documentation of 
+% \hrfn{http://www.imagemagick.org/script/command-line-processing.php}%
+% {\app{ImageMagick} command-line tool}.
+%
+%
+% \subsubsection{Settings for the invocation of \app{Ghostscript}}
+%
+% \DescribeOptions{gsexe,gsdevice,gsopt}
+% The conversion with \app{Ghostscript} is done with command-line~tool \file{gs}
+% on unix-like operating systems and \file{gswin64c} or \file{gswin32c} on 
+% Windows. The executable can be changed with option \opt{gsexe}. Because 
+% \app{Ghostscript} requires the specification of a device, there are some 
+% predefined for the most common output formats. These are:
+% \begin{svgexample}
+%   \svgsetup{%
+%     gsdevice={png=png16m},gsdevice={jpeg=jpeg},gsdevice={jpg=jpeg},%
+%     gsdevice={tif=tiff48nc},gsdevice={tiff=tiff48nc},%
+%     gsdevice={eps=eps2write},gsdevice={ps=ps2write}%
+%   }%
+% \end{svgexample}
+% Furthermore, with \opt{gsopt} additional switches for \app{Ghostscript} can 
+% be set. As described before, both \opt{gsdevice} and \opt{gsopt} can be 
+% defined in general or for specific output formats. For further information
+% see the documentation of 
+% \hrfn{https://ghostscript.com/doc/current/Use.htm}{\app{Ghostscript}}.
+%
+%
+%
+% \section{Example}
+%
+% As an minimal example\footnote{\ignorespaces%
+%   The image used here is a slightly modified version of the image used in the
+%   initial documentation on how to include a SVG~file in \LaTeX{} by 
+%   Johan\,B.\,C.~Engelen available as package 
+%   \href{http://www.ctan.org/pkg/svg-inkscape}{\pkg{svg-inkscape} on CTAN}.
+% } take the following lines of code:
+% \begin{svgexample}
+%   \documentclass{article}
+%   \usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
+%   \usepackage[T1]{fontenc}
+%   \usepackage{svg}
+%   \usepackage[off]{svg-extract}
+%   \svgsetup{clean=true}
+%   %\pdfsuppresswarningpagegroup=1
+%   \usepackage{relsize}
+%   \usepackage{subcaption}
+%   \begin{document}
 %   \begin{figure}
-%     \subfloat[This text is too large!]{\includesvg[clean,
-%     preamble=preamble.tex,pdf,width=5cm]{example}}
-%     \subfloat[This text fits better.]{\includesvg[clean,
-%     preamble=preamble.tex,eps,pretex=\relscale{0.5},width=5cm]{example}}
-%     \caption{An example figure.\label{fig:example}}
+%     \begin{minipage}{.5\linewidth}
+%       \includesvg[width=\linewidth]{svg-example}%
+%       \subcaption{This text is too large!}
+%     \end{minipage}%
+%     \begin{minipage}{.5\linewidth}
+%       \includesvg[width=\linewidth,pretex=\relscale{0.6}]{svg-example}%
+%       \subcaption{This text fits better.}
+%     \end{minipage}
+%   \caption{An example figure with \LaTeX~support}\label{fig:example}
 %   \end{figure}
-% \end{example}
-% where the \svg |example.svg| within this directory has been included
-% twice using the |\svginclude| command. The output is shown in Figure
-% \ref{fig:example}.
-%
-% \begin{figure}
-%   \begin{center}
-%     \subfloat[This text is too
-%     large!]{\includesvg[name=Fig.1a,clean,
-%     preamble=preamble.tex,pdf,width=5cm]{example}} \subfloat[This
-%     text fits
-%     better.]{\includesvg[name=Fig.1b,clean,preamble=preamble.tex,
-%     eps,pretex=\relscale{0.5},width=5cm]{example}}
-%     \caption{An example figure.\label{fig:example}}
-%   \end{center}
+%   \begin{figure}\centering
+%     \includesvg[%
+%       width=.5\linewidth,inkscapelatex=false,extractformat={pdf,eps}%
+%     ]{svg-example}%
+%     \caption{The same example figure without \LaTeX~support}
+%   \end{figure}
+%   \end{document}
+% \end{svgexample}
+% \begin{figure}[tb]
+%   \null\hfill\ignorespaces%
+%   \begin{minipage}{.45\linewidth}
+%     \includesvg[width=\linewidth]{svg-example}%
+%     \subcaption{This text is too large!}\label{fig:example-tex-a}
+%   \end{minipage}\hfill\ignorespaces%
+%   \begin{minipage}{.45\linewidth}
+%     \includesvg[width=\linewidth,pretex=\relscale{0.6}]{svg-example}%
+%     \subcaption{This text fits better.}\label{fig:example-tex-b}
+%   \end{minipage}
+%   \hfill\null\ignorespaces%
+%   \caption{An example figure with \LaTeX~support}\label{fig:example-tex}
 % \end{figure}
+% \begin{figure}[tb]\centering
+%   \includesvg[%
+%     width=.5\linewidth,inkscapelatex=false,extractformat={pdf,eps}%
+%   ]{svg-example}%
+%   \caption{The same example figure without \LaTeX~support}\label{fig:example}
+% \end{figure}
 %
-% The first subfigure is created with the export option |pdf| with the
-% default |name|, and so the file |Fig.1a.pdf| is extracted. However,
-% the text is overrunning the margins of the image, and so the second
-% subfigure decreases the relative size of the text within the image
-% using the |pretex| option. Now, an \eps is requested for
-% extraction, and so the file |Fig.1b.eps| is created.
+% If you are willing to compile the example, there are two aspects to consider. 
+% First, the included SVG~file \file{svg-example.svg} has to be located in the 
+% current folder and is located in \file{\meta{texmf}/doc/latex/svg/examples/}. 
+% Second, you have to run the desired \LaTeX~engine with 
+% \file{-{}-shell-escape} option enabled. 
 %
-% Notice that for both subfigures, the |preamble| was set to
-% |preamble.tex|, also included in this current directory, rather than
-% the default current document. Additionally, the flag |clean| has
-% been used which forces the cleanup of any extraneous generated
-% files.
+% The output is shown in \autoref{fig:example-tex} and \autoref{fig:example}. 
+% Within this example the file \file{svg-example.svg} was included three times 
+% using the \cs{includesvg} command.
+% 
+% As you can see, \autoref{fig:example-tex-a} is created with default settings, 
+% except for the width specification. So the \app{Inkscape}~export with
+% \LaTeX~support is done as well as the extraction of a independent graphic~file
+% in PDF~format as the \pkg{svg-extract} package was loaded. 
 %
-% \section{ROOT}\label{sec:root}
+% However, the text is slightly overrunning the margins of the image, and so 
+% \autoref{fig:example-tex-b}---which again uses the same \app{Inkscape}~export 
+% results---decreases the font size of the text within the image relative 
+% using the \prm{pretex} option together with the \cs{relscale} command 
+% provided by the \pkg{relsize} package. 
 %
-% \croot has the ability to export directly to an \svg, which means
-% that it is possible to completely by-pass all of \croot's internal
-% text rendering machinery, and let \latex handle the text
-% natively. This means that all of the ugly fonts that are rendered by
-% \croot can now be completely avoided, with the additional bonus of
-% being able to add references within plots. So how does one go about
-% using this package with \croot?
+% In \autoref{fig:example} the same SVG~file was used but without the export 
+% of a separate \LaTeX~file containing all text elements. 
+%
+% Feel free to use this given example to try out all the options and 
+% possibilities described in \autoref{sec:inkscape} for package \pkg{svg}.
+% Especially if you want to use package \pkg{svg-extract} for the automated 
+% extraction of independent graphics (\autoref{sec:extract}) and their 
+% conversion to different graphic formats with \app{ImageMagick} and/or 
+% \app{Ghostscript} (\autoref{sec:convert}), this example can be easily used 
+% for the first steps.
+%
+%
+%
+% \section{Troubleshooting and reporting issues}
+%
+% When using the packages \pkg{svg} and \pkg{svg-extract}, the most likely 
+% occurring problems will be caused by calling the external programs. For this 
+% reason, a short package information is written into the log~file right before 
+% each call of an external program via shell. If a file should have been 
+% created, both packages check after the external call, whether this file
+% exists or not and raise an error or at least a warning, if this file is 
+% missing. If you got such a message, please check the log~file for lines like:
+% \begin{quote}
+% |Package svg Info:| or |Package svg-extract Info:|
+% \end{quote}
+% Right afterwards, there should appear |runsystem(<command>)...excuted.| which 
+% you should try to execute manually from shell in the right directory. In most
+% cases, the problem will be an invalid command call. If something goes wrong
+% during the extraction/converting process of package \pkg{svg-extract}, it
+% would make sense to set option \opt{clean}|=|\val{false} to not delete any 
+% auxiliary files that might be needed.
+%
+% If you are sure that the problem is not caused by the configuration of your
+% operating system, you can send an error report either via email or create a
+% new issue on GitHub. Both addresses can be found on the title.
+%
+% \minisec{When using pdf\LaTeX{} there are a lot of warnings}
+%
+% It may happen that several warnings like
+% \begin{quote}\ttfamily\raggedright%
+% pdfTeX warning:\,pdflatex.exe(file \meta{filename}.pdf):\,PDF inclusion:
+% multiple pdfs with page group included in a single page
+% \end{quote}
+% occur when including the PDF~graphics exported with \app{Inkscape}. This is 
+% related to the handling of transparency effects within PDF~files. Since
+% pdf\TeX~version 1.40.15 or later, you can get rid of these messages by using
+% \cs{pdfsuppresswarningpagegroup}|=|\val{1}. See also the discussion on 
+% \hrfn{http://tex.stackexchange.com/questions/76273/}{LaTeX Stack Exchange} 
+% for more information.
+%
+%
+%
+% \section{Include SVG files created with \app{ROOT}}
+%
+% This section was originally written by Philip Ilten. In the hope that since 
+% then nothing has changed fundamentally in the described procedure, this 
+% passage remains in the documentation, even if it will almost certainly be 
+% relevant to experimental particle physicists only, who frequently use the
+% analysis package \app{ROOT}.
+%
+% \app{ROOT} has the ability to export directly to a SVG~file, which means that 
+% it is possible to completely by-pass all of \app{ROOT}'s internal text
+% rendering machinery, and let \LaTeX{} handle the text natively. This means
+% that all of the ugly fonts that are rendered by \app{ROOT} can now be
+% completely avoided, with the additional bonus of being able to add references
+% within plots. So how does one go about using this package with \app{ROOT}?
 % \begin{enumerate}
-% \item Create the plot with \croot as normal, but turn off all \latex
-%   interpretation of text strings. This is a bit tricky, but can be
-%   accomplished by setting the font in \croot to a precision of zero
-%   as described in the documentation for
-%   \href{http://root.cern.ch/root/html/TAttText.html}{\tt
-%   TAttFill}. Remember that the font is set using the function
-%   |(TAttFill*)->SetTextFont(i)| where |i| is the (font type) $\times
-%   ~10 ~+$ (font precision). In the following lines of code, a
-%   |TStyle| is defined which sets the font to type ``Courier New''
-%   with a precision of zero.
-%   \begin{example}
+% \item
+%   Create the plot with \app{ROOT} as normal, but turn off all 
+%   \LaTeX~interpretation of text strings. This is a bit tricky, but can be
+%   accomplished by setting the font in \app{ROOT} to a precision of zero as
+%   described in the documentation for
+%   \hrfn{http://root.cern.ch/root/html/TAttText.html}{\texttt{TAttFill}}. 
+%   Remember that the font is set by using the function
+%   |(TAttFill*)->SetTextFont(i)| with
+%   \[\texttt{i}=\textrm{(font type)} \times 10 + \textrm{(font precision)}\]
+%   In the following lines of code, a |TStyle| is defined which sets the font
+%   to type ``Courier New'' with a precision of zero.
+%   \begin{svgexample}[backgroundcolor=\color{red!10}]
 %     TStyle *style = new TStyle("style","style"); int FONT = 80;
 %     style->SetTextFont(FONT);
 %     style->SetLabelFont(FONT,"XYZ");
@@ -397,72 +1150,3930 @@
 %     style->SetTitleFont(FONT,"");
 %     gROOT->SetStyle("style");
 %     gROOT->ForceStyle();
-%   \end{example}
-%   Now, just use the standard \latex syntax for creating labels,
-%   etc. Note however, that the backslash must be escaped due to
-%   interpretation of special characters by C++.
-% \item Print the plot as an \svg.
-%   \begin{example}
+%   \end{svgexample}
+%   Now, you can just use the well\hbox{-}known standard \LaTeX~syntax for 
+%   creating labels, etc. Note however, that backslashes have to be escaped due
+%   to interpretation of special characters by \app{C++}.
+% \item Print the plot as a SVG~file.
+%   \begin{svgexample}[backgroundcolor=\color{red!10}]
 %     gPad->Print("foo.svg");
-%   \end{example}
-% \item Include the \svg within the document using this package.
-%   \begin{example}
-%     \usepackage[clean,pdf]{svg}
-%     ...
-%     \includesvg[width=\columnwidth]{foo}
-%   \end{example}
+%   \end{svgexample}
+% \item Include the SVG~file within the document using this package.
+%   \begin{svgexample}
+%     \usepackage{svg}
+%     \usepackage{svg-extract}
+%     \svgsetup{clean=true}
+%     §\dots§
+%     \includesvg[width=\linewidth]{foo}
+%   \end{svgexample}
 % \end{enumerate}
 %
-% \begin{figure}
-%   \begin{center}
-%     \includesvg[clean,preamble=preamble.tex,pdf,png,height=6cm,pretex=\tiny]
-%     {root}
-%   \end{center}
-%   \caption{Rendering of a \croot plot (no more ``Comic
-%   CERNs'').\label{fig:root}}
-% \end{figure}
+% Consider the following example image produced by \app{ROOT} in 
+% \autoref{fig:root}. This figure was generated by the \app{ROOT} macro
+% \file{root.C}, provided within \file{\meta{texmf}/doc/latex/svg/examples/},
+% which produces the file~\file{root.svg} when run. The code used to produce
+% this SVG~file from within \app{ROOT} is
+% \lstinputlisting[style=svg,backgroundcolor=\color{red!10}]{examples/root.C} 
+% where the text produced within the \app{ROOT} plot is set to a precision of
+% zero. 
 %
-% Consider the example image produced by \croot in Figure
-% \ref{fig:root}. This figure was generated by the \croot macro
-% |root.C|, provided within this directory, which produces the \svg
-% |root.svg| when run. The code used to produce this \svg from within
-% \croot is
-% \lstinputlisting[basicstyle=\footnotesize\ttfamily,columns=flexible,
-% frame=single,backgroundcolor=\color{yellow!20},xleftmargin=\fboxsep,
-% xrightmargin=\fboxsep,gobble=1]{root.C} where the text produced
-% within the \croot plot is set to a precision of zero. The plot was
-% then included within this document using the \latex code
-% \begin{example}
+% The plot was then included within this document using the following 
+% \LaTeX~code
+% \begin{svgexample}
 %   \begin{figure}
-%     \begin{center}
-%       \includesvg[clean,preamble=preamble.tex,pdf,png,height=6cm,pretex=\tiny]
-%       {root}
-%     \end{center}
-%     \caption{Rendering of a \croot plot (no more ``Comic
-%     CERNs'').\label{fig:root}}
+%     \centering%
+%     \includesvg[%
+%       inkscapearea=page,height=6cm,pretex=\tiny,convertformat=png%
+%     ]{root}%
+%     \caption{Rendering of a \app{ROOT} plot---no more \emph{Comic CERNs}}%
+%     \label{fig:root}%
 %   \end{figure}
-% \end{example}
-% which produces the extracted images |Fig.2.pdf| and
-% |Fig.2.png|. Enjoy plots from \croot with natively rendered \latex!
+% \end{svgexample}
+% \begin{figure}
+%   \centering%
+%     \includesvg[%
+%       inkscapearea=page,height=6cm,pretex=\tiny,convertformat=png%
+%     ]{root}%
+%   \caption{Rendering of a \app{ROOT} plot---no more \emph{Comic CERNs}}%
+%   \label{fig:root}%
+% \end{figure}
+% which includes the graphic as well as the \LaTeX~file exported by 
+% \app{Inkscape}, produces the extracted PDF~image~(\file{root.pdf}) and 
+% converts this to a PNG~image~(\file{root.png}) by using \app{ImageMagick}.
+% Enjoy plots from \app{ROOT} with natively rendered \LaTeX!
 %
-% \StopEventually{\section{Thanks} Thanks to my lovely wife \'Eadaoin
-% for being a very patient beta tester and important
-% collaborator. Thanks is also due to J. Engelen for creating this
-% functionality within \inkscape, and of course to all the developers
-% of \inkscape.}
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
 %
-% \section{Implementation}\label{sec:implementation}
+% \iffalse
+%<*package&option>
+% \fi
 %
-% \begin{macro}{initialization}
-%   The package, which requires the packages |xkeyval| for the
-%   options, |subfig| for automatic labeling within the subfigure
-%   command, the |import| package for correct handling of paths,
-%   |graphicx| for the \pdf inclusion commands, |transparent| for
-%   transparency, and |xcolor| for color, is initialized.
+%
+%
+% \cleardoublepage
+% \appendix
+% \part{Implementation}
+% \section{Initialization}
+%
+% The package \pkg{svg} requires \pkg{scrbase} for options processing, the
+% packages \pkg{ifluatex}, \pkg{ifpdf} and \pkg{ifxetex} for detecting the 
+% used \LaTeX~engine, \pkg{pdftexcmds} for pdf\TeX{} primitives when using
+% Lua\TeX, \pkg{shellesc} and \pkg{ifplatform} for engine independent access to 
+% systems commands and files as well as \pkg{graphicx} for the inclusion of
+% PDF~files. The usage of packages \pkg{xcolor} and \pkg{transparent}
+% can be switched of with the corresponding options. Package \pkg{svg-extract} 
+% only needs package \pkg{svg} itself.
+%    \begin{macrocode}
+%<*base>
+\RequirePackage{scrbase}[2016/06/14]
+\RequirePackage{ifxetex}[2010/09/12]
+\RequirePackage{ifluatex}[2016/05/16]
+\RequirePackage{ifpdf}[2016/05/14]
+\RequirePackage{pdftexcmds}[2016/05/21]
+\RequirePackage{shellesc}[2016/06/07]
+\RequirePackage{graphicx}[1999/02/16]
+%</base>
+%<*extract>
+\RequirePackage{svg}[2017/03/27]
+%</extract>
+%    \end{macrocode}
+% With the interface provided by package \pkg{scrbase} all options, which can 
+% be set either as package options or with \cs{svgsetup}, as well as the
+% optional parameters for both user commands 
+% \cs{includesvg}\oarg{parameters}\marg{svg filename} and
+% \cs{includeinkscape}\oarg{parameters}\marg{graphic filename} are defined.
+%    \begin{macrocode}
+\DefineFamily{SVG}
+\DefineFamilyMember{SVG}
+%    \end{macrocode}
+% \begin{macro}{\svg at deprecated@key}
+% With version v2.00 the whole user interface was renewed. For reasons of 
+% compatibility, outdated options and parameters from version~v1.0 are also 
+% provided. If an old key was given, a warning is issued and the valid key is
+% used.
+%    \begin{macrocode}
+%<*base>
+\newcommand*\svg at deprecated@key[3][svg]{%
+  \PackageWarning{#1}{%
+    The option key `#2' is deprecated.\MessageBreak%
+    It's recommended to use `#3'\MessageBreak%
+    instead%
+  }%
+  \FamilyOptions{SVG}{#3}%
+}
+%</base>
+%    \end{macrocode}
+% \end{macro}^^A \svg at deprecated@key
+% \begin{macro}{\svg at tempa}
+% \begin{macro}{\svg at tempb}
+% \begin{macro}{\if at svg@tempswa}
+% \begin{macro}{\svg at tempcnt}
+% Internal temporary macros.
+%    \begin{macrocode}
+%<*base>
+\newcommand*\svg at tempa{}
+\newcommand*\svg at tempb{}
+\newif\if at svg@tempswa
+\newcount\svg at tempcnt
+%</base>
+%    \end{macrocode}
+% \end{macro}^^A \svg at tempcnt
+% \end{macro}^^A \if at svg@tempswa
+% \end{macro}^^A \svg at tempb
+% \end{macro}^^A \svg at tempa
+%
 % \iffalse
-%<*svg>
+%</package&option>
+%<*package&base>
+%<*option>
 % \fi
+%
+%
+%
+% \section{Including SVG files with package \pkg{svg}}
+% \subsection{Options}
+%
+% Within the exported \LaTeX~files of \app{Inkscape}, some commands are used 
+% out of additional packages. But maybe the user doesn't want to load this 
+% packages anyways.
+%
+% \begin{option}{usexcolor}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{option}{noxcolor}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{macro}{\if at svg@use at xcolor}
+% \begin{option}{usetransparent}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{option}{notransparent}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{macro}{\if at svg@use at transparent}
+% Options for preventing packages \pkg{xcolor} and \pkg{transparent} to be 
+% loaded.
 %    \begin{macrocode}
+\newif\if at svg@use at xcolor
+\FamilyBoolKey{SVG}{usexcolor}{@svg at use@xcolor}
+\DeclareOption{noxcolor}{\FamilyOptions{SVG}{usexcolor=false}}
+\newif\if at svg@use at transparent
+\FamilyBoolKey{SVG}{usetransparent}{@svg at use@transparent}
+\DeclareOption{notransparent}{\FamilyOptions{SVG}{usetransparent=false}}
+%    \end{macrocode}
+% They are only available during the loading process of package \pkg{svg}.
+%    \begin{macrocode}
+\AtEndOfPackage{%
+  \RelaxFamilyKey{SVG}{usexcolor}%
+  \RelaxFamilyKey{SVG}{usetransparent}%
+  \if at svg@use at xcolor%
+    \RequirePackage{xcolor}[2016/05/11]%
+  \else%
+    \AfterPackage*{xcolor}{%
+      \PackageWarning{svg}{Package `xcolor' was loaded anyway}%
+    }%
+  \fi%
+  \if at svg@use at transparent%
+    \RequirePackage{transparent}[2016/05/16]%
+  \else%
+    \AfterPackage*{transparent}{%
+      \PackageWarning{svg}{Package `transparent' was loaded anyway}%
+    }%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \if at svg@use at transparent
+% \end{option}^^A notransparent
+% \end{option}^^A usetransparent
+% \end{macro}^^A \if at svg@use at xcolor
+% \end{option}^^A noxcolor
+% \end{option}^^A usexcolor
+%
+%
+%
+% \subsubsection{The invocation of \app{Inkscape}}
+%
+% The Application \app{Inkscape} is used to create includable graphic files in 
+% a desired format (PDF/EPS/PS/PNG) out of files in SVG~format, whereas the
+% support of \LaTeX{} can optionally be used.
+%
+% \begin{option}{inkscape}
+% \changes{v2.00}{2017/02/17}{changed/extended}
+% \begin{macro}{\svg at ink@mode}
+% The intension of option \opt{inkscape} is to control the running behaviour of 
+% \app{Inkscape}. It can be switched off at all or invoked only if necessarry 
+% or the command line call can be forced with every \LaTeX~run. Additionally,
+% option \opt{inkscape} can be used as wrapper for options \opt{inkscapeformat},
+% \opt{inkscapelatex}, \opt{inkscapearea} and \opt{inkscapedpi}, which are
+% declared later.
+%    \begin{macrocode}
+\newcommand*\svg at ink@mode{}
+\DefineFamilyKey{SVG}{inkscape}[true]{%
+  \lowercase{\def\svg at tempa{#1}}%
+  \FamilySetNumerical{SVG}{inkscape}{svg at tempa}{%
+    {false}{0},{off}{0},{no}{0},%
+    {true}{1},{on}{1},{yes}{1},{onlynewer}{1},{newer}{1},%
+    {force}{2},{forced}{2},{overwrite}{2},%
+    {pdf}{3},{eps}{4},{ps}{5},{png}{6},%
+    {drawing}{7},{crop}{7},%
+    {page}{8},{nocrop}{8},%
+    {tex}{9},{latex}{9},{exportlatex}{9},{latexexport}{9},%
+    {notex}{10},{nolatex}{10},{noexportlatex}{10},{nolatexexport}{10},%
+    {latexnoexport}{10},{raw}{10},{plain}{10},{simple}{10}%
+  }{\svg at tempa}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifnum\svg at tempa<\thr@@\relax%
+      \let\svg at ink@mode\svg at tempa%
+    \else%
+      \ifcase\svg at tempa\relax\or\or\or% pdf
+        \FamilyOptions{SVG}{inkscapeformat=pdf}%
+      \or% eps
+        \FamilyOptions{SVG}{inkscapeformat=eps}%
+      \or% ps
+        \FamilyOptions{SVG}{inkscapeformat=ps}%
+      \or% png
+        \FamilyOptions{SVG}{inkscapeformat=png}%
+      \or% drawing
+        \FamilyOptions{SVG}{inkscapearea=drawing}%
+      \or% page
+        \FamilyOptions{SVG}{inkscapearea=page}%
+      \or% tex
+        \FamilyOptions{SVG}{inkscapelatex=true}%
+      \or% notex
+        \FamilyOptions{SVG}{inkscapelatex=false}%
+      \fi%
+    \fi%
+%    \end{macrocode}
+% It's also possible to set the option \opt{inkscapedpi} by passing a number 
+% followed by \val{dpi} like \opt{inkscape}|=|\val{300dpi}.
+%    \begin{macrocode}
+  \else% dpi
+    \def\svg at tempa##1dpi##2\@nil{%
+      \ifstr{##2}{dpi}{\FamilyOptions{SVG}{inkscapedpi=##1}}{}%
+    }%
+    \lowercase{\svg at tempa#1dpi\@nil}%
+%    \end{macrocode}
+% In version~v1.0 the option \opt{inkscape} was used to set both the executable 
+% and options for \app{Inkscape}. This is taken into account here.
+%    \begin{macrocode}
+    \ifx\FamilyKeyState\FamilyKeyStateProcessed\else%
+%    \end{macrocode}
+% Splitting executable from options with delimitted macros. After calling 
+% \cs{svg at tempa} with the given value, the part for the executable is stored in 
+% \cs{svg at tempa} and the option part---which is recognized by the first |-| 
+% character--- in \cs{svg at tempb}.
+%    \begin{macrocode}
+      \def\svg at tempa##1-##2\@nil{%
+        \IfArgIsEmpty{##2}{\def\svg at tempb{}}{%
+          \def\svg at tempa##1####1\@nil{\def\svg at tempb{####1}}%
+          \svg at tempa#1\@nil%
+        }%
+        \def\svg at tempa{##1}%
+      }%
+      \svg at tempa#1-\@nil%
+      \PackageWarning{svg}{%
+        Setting the executable%
+        \ifx\svg at tempb\@empty\else%
+          \space and associated options%
+        \fi%
+        \MessageBreak%
+        for Inkscape should be done with options\MessageBreak%
+        `inkscapeexe=\svg at tempa'%
+        \ifx\svg at tempb\@empty\else%
+          \MessageBreak and `inkscapeopt=\svg at tempb'%
+        \fi.\MessageBreak% 
+        Nevertheless, this was done by now anyway%
+      }%
+      \edef\svg at tempa{%
+        \noexpand\FamilyOptions{SVG}{inkscapeexe=\svg at tempa}%
+        \ifx\svg at tempb\@empty\else%
+          \noexpand\FamilyOptions{SVG}{inkscapeopt=\svg at tempb}%
+        \fi%
+      }%
+      \svg at tempa%
+    \fi%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at ink@mode
+% \end{option}^^A inkscape
+% \begin{option}{on}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{option}{off}
+% \changes{v2.00}{2017/02/24}{new}
+% Package options which can be used to switch functionality on or off during 
+% the loading of package \pkg{svg}.
+%    \begin{macrocode}
+\DeclareOption{on}{\FamilyOptions{SVG}{inkscape=true}}
+\DeclareOption{off}{\FamilyOptions{SVG}{inkscape=false}}
+%    \end{macrocode}
+% \end{option}^^A off
+% \end{option}^^A on
+% \begin{option}{inkscapeformat}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{macro}{\svg at ink@format}
+% With option \opt{inkscapeformat} the output format of the \app{Inkscape} 
+% export function, which is called via \cs{ShellEscape}, can be configured.
+% It is set to \val{pdf} or, if dvi output could be detected, to \val{eps} 
+% during initialization.
+%    \begin{macrocode}
+\newcommand*\svg at ink@format{pdf}
+\ifxetex\else\ifpdf\else
+  \renewcommand*\svg at ink@format{eps}
+\fi\fi
+\DefineFamilyKey{SVG}{inkscapeformat}{%
+  \lowercase{\def\svg at tempa{#1}}%
+  \FamilySetNumerical{SVG}{inkscapeformat}{svg at tempa}{%
+    {pdf}{0},{eps}{1},{ps}{2},{png}{3}%
+  }{\svg at tempa}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% latex
+      \renewcommand*\svg at ink@format{pdf}%
+    \or% eps
+      \renewcommand*\svg at ink@format{eps}%
+    \or% ps
+      \renewcommand*\svg at ink@format{ps}%
+    \or% png
+      \renewcommand*\svg at ink@format{png}%
+    \fi%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at ink@format
+% \end{option}^^A inkscapeformat
+% \begin{option}{inkscapelatex}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{macro}{\svg at ink@latex}
+% This options controls whether the \app{Inkscape} export will be invoked with 
+% or without the generation of a seperate \LaTeX~file.
+%    \begin{macrocode}
+\newif\if at svg@ink at latex
+\FamilyBoolKey{SVG}{inkscapelatex}{@svg at ink@latex}
+%    \end{macrocode}
+% \end{macro}^^A \svg at ink@latex
+% \end{option}^^A inkscapelatex
+% \begin{option}{inkscapearea}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{macro}{\svg at ink@area}
+% The exported area for an \app{Inkscape} graphic can be set with this option.
+%    \begin{macrocode}
+\newcommand*\svg at ink@area{}
+\DefineFamilyKey{SVG}{inkscapearea}{%
+  \FamilySetNumerical{SVG}{inkscapearea}{svg at tempa}{%
+    {drawing}{0},{crop}{0},%
+    {page}{1},{nocrop}{1}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% drawing
+      \renewcommand*\svg at ink@area{-D}%
+    \else% page
+      \renewcommand*\svg at ink@area{-C}%
+    \fi%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at ink@area
+% \end{option}^^A inkscapearea
+% \begin{option}{inkscapedpi}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{option}{inkscapedensity}
+% \begin{macro}{\svg at ink@dpi}
+% A density can be chosen, which is used during export with \app{Inkscape} for 
+% bitmaps and rasterization of filters.
+%    \begin{macrocode}
+\newcommand*\svg at ink@dpi{}
+\let\svg at ink@dpi\relax
+\DefineFamilyKey{SVG}{inkscapedpi}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \let\svg at ink@dpi\relax%
+    \FamilyKeyStateProcessed%
+  }{%
+    \def\svg at tempa##1dpi##2\@nil{\def\svg at tempa{##1}}%
+    \lowercase{\svg at tempa#1dpi\@nil}%
+    \ifnumber{\svg at tempa}{%
+      \edef\svg at ink@dpi{\svg at tempa}%
+      \FamilyKeyStateProcessed%
+    }{}%
+  }%
+}
+\DefineFamilyKey{SVG}{inkscapedensity}{\FamilyOptions{SVG}{inkscapedpi=#1}}
+%    \end{macrocode}
+% \end{macro}^^A \svg at ink@dpi
+% \end{option}^^A inkscapedensity
+% \end{option}^^A inkscapedpi
+% \begin{option}{inkscapeexe}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{macro}{\svg at ink@exe}
+% \begin{option}{inkscapeopt}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{macro}{\svg at ink@opt}
+% With these options, the terminal command for invoking \app{Inkscape} as well 
+% as additional options can be defined.
+%    \begin{macrocode}
+\newcommand*\svg at ink@exe{inkscape}
+\DefineFamilyKey{SVG}{inkscapeexe}{%
+  \renewcommand*\svg at ink@exe{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svg at ink@opt{}
+\DefineFamilyKey{SVG}{inkscapeopt}{%
+  \renewcommand*\svg at ink@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at ink@opt
+% \end{option}^^A inkscapeopt
+% \end{macro}^^A \svg at ink@exe
+% \end{option}^^A inkscapeexe
+%
+%
+%
+% \subsubsection{Setting input folder}
+%
+% \begin{option}{svgpath}
+% \changes{v2.00}{2017/02/12}{deprecated}
+% In version~v1.0 setting the path to SVG~files was done via option. So 
+% this method is provided as well.
+%    \begin{macrocode}
+\DefineFamilyKey{SVG}{svgpath}{%
+  \PackageWarning{svg}{%
+    The key `svgpath' is deprecated. It's recommended\MessageBreak%
+    to use `\string\svgpath' instead%
+  }%
+  \ifx\svgpath\@undefined%
+    \AtEndOfPackage{\svgpath{{#1}}}%
+  \else%
+    \svgpath{{#1}}%
+  \fi%
+  \FamilyKeyStateProcessed%
+}
+%    \end{macrocode}
+% \end{option}^^A svgpath
+%
+%
+%
+% \subsubsection{Setting output folder}
+%
+% \begin{option}{inkscapepath}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{option}{inkscapename}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{macro}{\svg at out@path}
+% \begin{macro}{\svg at out@name}
+% \begin{macro}{\svg at out@base}
+% The option \opt{inkscapepath} controls, in which folder the results of the
+% \app{Inkscape} export will be located. With option \opt{inkscapename} the 
+% name of the exported file itself can be changed.
+%    \begin{macrocode}
+\newcommand*\svg at out@path{}
+\newcommand*\svg at out@name{\svg at file@name\svg at file@suffix}
+\newcommand*\svg at out@base{\svg at out@path\svg at out@name.\svg at ink@format}
+\DefineFamilyKey{SVG}{inkscapepath}{%
+  \FamilySetNumerical{SVG}{inkscapepath}{svg at tempa}{%
+    {svgpath}{0},{svgdir}{0},%
+    {svgsubpath}{1},{svgsubdir}{1},%
+    {basepath}{2},{basedir}{2},{jobpath}{2},{jobdir}{2},%
+    {basesubpath}{3},{basesubdir}{3},{jobsubpath}{3},{jobsubdir}{3}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% svgpath
+      \renewcommand*\svg at out@path{\svg at file@path}%
+    \or% svgsubpath
+      \renewcommand*\svg at out@path{\svg at file@path svg-inkscape/}%
+    \or% basepath
+      \renewcommand*\svg at out@path{./}%
+    \or% basesubpath
+      \renewcommand*\svg at out@path{./svg-inkscape/}%
+    \fi%
+  \else%
+    \renewcommand*\svg at out@path{#1}%
+    \svg at normalize@path{\svg at out@path}%
+    \FamilyKeyStateProcessed%
+  \fi%
+}
+\DefineFamilyKey{SVG}{inkscapename}{%
+  \renewcommand*\svg at out@name{#1\svg at file@suffix}%
+  \FamilyKeyStateProcessed%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at out@base
+% \end{macro}^^A \svg at out@name
+% \end{macro}^^A \svg at out@path
+% \end{option}^^A inkscapename
+% \end{option}^^A inkscapepath
+%
+%
+%
+% \subsubsection{Options for the inclusion of graphics}
+%
+% After the graphic export with \app{Inkscape}, the inclusion of those graphics 
+% can be controlled with the following options.
+%
+% \begin{option}{width}
+% \begin{macro}{\svg at param@width}
+% \begin{option}{height}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{macro}{\svg at param@width}
+% \begin{option}{scale}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{macro}{\svg at param@scale}
+% These options determine the size of the included graphics. The usage of
+% \val{\cs{relax}} as value resets the respective option to the default 
+% behavior.
+%    \begin{macrocode}
+\newcommand*\svg at param@width{\z@}
+\DefineFamilyKey{SVG}{width}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \renewcommand*\svg at param@width{\z@}%
+    \FamilyKeyStateProcessed%
+  }{%
+    \FamilySetLengthMacro{SVG}{width}{\svg at param@width}{#1}%
+    \ifdim\svg at param@width<\z@\relax%
+      \FamilyKeyStateUnknownValue%
+    \fi%
+  }%
+}
+\newcommand*\svg at param@height{\z@}
+\DefineFamilyKey{SVG}{height}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \renewcommand*\svg at param@height{\z@}%
+    \FamilyKeyStateProcessed%
+  }{%
+    \FamilySetLengthMacro{SVG}{height}{\svg at param@height}{#1}%
+    \ifdim\svg at param@height<\z@\relax%
+      \FamilyKeyStateUnknownValue%
+    \fi%
+  }%
+}
+\newcommand*\svg at param@scale{1}
+\DefineFamilyKey{SVG}{scale}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \renewcommand*\svg at param@scale{1}%
+    \FamilyKeyStateProcessed%
+  }{%
+    \ifisdimension{#1\p@}{%
+      \ifdim\dimexpr#1\p@\relax>\z@\relax%
+        \renewcommand*\svg at param@scale{#1}%
+        \FamilyKeyStateProcessed%
+      \fi%
+    }{}%
+  }%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at param@scale
+% \end{option}^^A scale
+% \end{macro}^^A \svg at param@height
+% \end{option}^^A height
+% \end{macro}^^A \svg at param@width
+% \end{option}^^A width
+% \begin{option}{pretex}
+% \begin{macro}{\svg at param@pretex}
+% \begin{option}{apptex}
+% \begin{macro}{\svg at param@apptex}
+% \begin{option}{postex}
+% \changes{v2.00}{2017/03/02}{deprecated}
+% For executing code right before or after the graphic inclusion, two hooks are 
+% defined.
+%    \begin{macrocode}
+\newcommand*\svg at param@pretex{}
+\let\svg at param@pretex\relax
+\DefineFamilyKey{SVG}{pretex}{%
+  \svg at ifvalueisrelax{#1}{%
+    \let\svg at param@pretex\relax%
+  }{%
+    \def\svg at param@pretex{#1}%
+  }%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svg at param@apptex{}
+\let\svg at param@apptex\relax
+\DefineFamilyKey{SVG}{apptex}{%
+  \svg at ifvalueisrelax{#1}{%
+    \let\svg at param@apptex\relax%
+  }{%
+    \def\svg at param@apptex{#1}%
+  }%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{postex}{%
+  \svg at deprecated@key{postex=#1}{apptex=#1}%
+}
+%    \end{macrocode}
+% \end{option}^^A postex
+% \end{macro}^^A \svg at param@apptex
+% \end{option}^^A apptex
+% \end{macro}^^A \svg at param@pretex
+% \end{option}^^A pretex
+% \begin{option}{lastpage}
+% \changes{v2.00}{2017/02/20}{new}
+% \begin{counter}{svg at param@lastpage}
+% For \app{Inkscape}~0.91 a bug concerning the \LaTeX~export has been reported
+% (\url{https://bugs.launchpad.net/ubuntu/+source/inkscape/+bug/1417470}). 
+% Sometimes the \LaTeX~file created by \app{Inkscape} tries to include more
+% pages than actually are present in the PDF~file. To work around this 
+% problem, a patch is provided. For this purpose, the total page number is read 
+% from the PDF~file. 
+%    \begin{macrocode}
+\newcounter{svg at param@lastpage}
+\DefineFamilyKey{SVG}{lastpage}{%
+  \FamilySetNumerical{SVG}{lastpage}{svg at tempa}{%
+    {false}{0},{off}{0},{no}{0},{ignore}{0},%
+    {true}{1},{on}{1},{yes}{1},{auto}{1}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% false
+      \FamilySetCounter{SVG}{lastpage}{svg at param@lastpage}{\m at ne}%
+    \or% true
+      \FamilySetCounter{SVG}{lastpage}{svg at param@lastpage}{\z@}%
+    \fi%
+  \fi%
+}
+%    \end{macrocode}
+% \end{counter}^^A svg at param@lastpage
+% \end{option}^^A lastpage
+% \begin{option}{draft}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{macro}{\if at svg@draft}
+% The option \opt{draft} has the same effect as the eponymous option of package
+% \pkg{graphicx}.
+%    \begin{macrocode}
+\newif\if at svg@draft
+\FamilyBoolKey{SVG}{draft}{@svg at draft}
+\AtBeginDocument{\if at svg@draft\else\ifGin at draft\@svg at drafttrue\fi\fi}
+%    \end{macrocode}
+% \end{macro}^^A \if at svg@draft
+% \end{option}^^A draft
+%
+%
+%
+% \subsection{Handling path information}
+%
+% Both packages \pkg{svg} and \pkg{svg-extract} should be able to handle 
+% user-defined input and output paths. As there is the possibility for users to 
+% provide paths with or without quotes to \LaTeX, this is taken into account.
+%
+% \begin{macro}{\svg at quotes@remove}
+% \begin{macro}{\svg at quotes@@remove}
+% These two commands are used to remove all occurring quotes within a string. 
+% The only argument passed to \cs{svg at quotes@remove} is not the string itself
+% but a macro in which a string is stored.
+%    \begin{macrocode}
+\newcommand*\svg at quotes@remove[1]{%
+  \begingroup%
+    \edef\svg at tempa{#1}%
+    \expandafter\svg at quotes@@remove\svg at tempa""\@nil%
+    \edef\svg at tempb{%
+      \endgroup%
+      \noexpand\def\noexpand#1{\unexpanded\expandafter{\svg at tempa}}%
+    }%
+  \svg at tempb%
+}
+\newcommand*\svg at quotes@@remove{}
+\def\svg at quotes@@remove#1"#2"#3\@nil{%
+  \IfArgIsEmpty{#2}{%
+    \edef\svg at tempa{#1}%
+  }{%
+    \svg at quotes@@remove#1#2#3""\@nil%
+  }%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at quotes@@remove
+% \end{macro}^^A \svg at quotes@remove
+% \begin{macro}{\svg at quotes@check}
+% \begin{macro}{\svg at quotes@@check}
+% \begin{macro}{\if at svg@quotes at found}
+% During the treatment of paths, it may be necessary to temporarily remove 
+% quotes and, if required, add them again later. For this purpose, the switch 
+% \cs{if at svg@quotes at found} as well as the commands \cs{svg at quotes@check} and
+% \cs{svg at quotes@@check}, which controls the switch, are defined. As before, 
+% the string is passed in a macro to \cs{svg at quotes@check}.
+%    \begin{macrocode}
+\newif\if at svg@quotes at found
+\newcommand*\svg at quotes@check[1]{%
+  \expandafter\svg at quotes@@check#1"\@nil%
+}
+\newcommand*\svg at quotes@@check{}
+\def\svg at quotes@@check#1"#2\@nil{%
+  \IfArgIsEmpty{#2}{\@svg at quotes@foundfalse}{\@svg at quotes@foundtrue}%
+}
+%    \end{macrocode}
+% \end{macro}^^A \if at svg@quotes at found
+% \end{macro}^^A \svg at quotes@@check
+% \end{macro}^^A \svg at quotes@check
+% \begin{macro}{\svg at normalize@path}
+% \begin{macro}{\svg at normalize@@path}
+% If any path is given, a trailing slash is needed. These two macros ensure
+% that this condition is fulfilled in any case, even if this is not considered
+% by the user. As before, a macro containing the path string is passed to 
+% \cs{svg at normalize@path}.
+%    \begin{macrocode}
+\newcommand*\svg at normalize@path[1]{%
+  \begingroup%
+    \edef\svg at tempa{#1}%
+    \svg at quotes@check{\svg at tempa}%
+    \svg at quotes@remove{\svg at tempa}%
+    \ifx\svg at tempa\@empty\relax%
+      \def\svg at tempa{./}%
+    \fi%
+    \expandafter\svg at normalize@@path\svg at tempa//\@nil%
+    \edef\svg at tempb{%
+      \endgroup%
+      \if at svg@quotes at found%
+        \noexpand\def\noexpand#1{"\unexpanded\expandafter{\svg at tempa}"}%
+      \else%
+        \noexpand\def\noexpand#1{\unexpanded\expandafter{\svg at tempa}}%
+      \fi%
+    }%
+  \svg at tempb%
+}
+\newcommand*\svg at normalize@@path{}
+\def\svg at normalize@@path#1/#2/\@nil{%
+  \IfArgIsEmpty{#2}{%
+    \IfArgIsEmpty{#1}{\def\svg at tempa{}}{\def\svg at tempa{#1/}}%
+  }{%
+    \svg at normalize@@path#2/\@nil%
+    \edef\svg at tempa{#1/\unexpanded\expandafter{\svg at tempa}}%
+  }%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at normalize@@path
+% \end{macro}^^A \svg at normalize@path
+% \begin{macro}{\svg at ifvalueisrelax}
+% For some keys the usage of \val{\cs{relax}} as a value should lead to a 
+% special reaction, such as restoring to default behavior or reseting the key.
+% Therefore, \cs{svg at ifvalueisrelax} checks, whether \val{\cs{relax}} was used
+% as value or not.
+%    \begin{macrocode}
+\newcommand*\svg at ifvalueisrelax[1]{%
+  \begingroup%
+    \def\svg at tempa{#1}%
+    \def\svg at tempb{\relax}%
+    \ifx\svg at tempa\svg at tempb\relax%
+      \aftergroup\@firstoftwo%
+    \else%
+      \aftergroup\@secondoftwo%
+    \fi%
+  \endgroup%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at ifvalueisrelax
+%
+% \iffalse
+%</option>
+%<*body>
+% \fi
+%
+% \begin{macro}{\svg at get@path}
+% \begin{macro}{\svg at get@@path}
+% \begin{macro}{\if at svg@file at found}
+% \begin{macro}{\svg at file@path}
+% \begin{macro}{\svg at file@name}
+% \begin{macro}{\svg at file@base}
+% \begin{macro}{\svg at file@suffix}
+% The command \cs{svg at get@path} tries to find a given SVG~file. If the 
+% searched file wasn't found in the current path, all paths given with 
+% \cs{svgpath} are evaluated. If there was no appropriate file again, all paths
+% given by \cs{graphicspath} are examined. In the last step, a given path 
+% within the second mandatory argument is browsed. The results for file path
+% and name are stored in \cs{svg at file@path} and \cs{svg at file@name} as well as
+% the compound of both is saved in \cs{svg at file@base}.
+%    \begin{macrocode}
+\newif\if at svg@file at found
+\newcommand*\svg at file@path{}
+\newcommand*\svg at file@name{}
+\newcommand*\svg at file@base{}
+\newcommand*\svg at file@suffix{}
+\newcommand*\svg at get@path[3][svg]{%
+  \begingroup%
+%    \end{macrocode}
+% A maybe given, unneeded file extension is removed.
+%    \begin{macrocode}
+    \edef\svg at tempa{#2}%
+    \svg at quotes@check{\svg at tempa}%
+    \svg at quotes@remove{\svg at tempa}%
+    \expandafter\svg at filename@parse\expandafter{\svg at tempa}%
+    \IfArgIsEmpty{#1}{%
+      \edef\svg at tempa{\filename at area\filename at base.\filename at ext}%
+    }{%
+      \edef\svg at tempa{\filename at area\filename at base.#1}%
+    }%
+    \if at svg@quotes at found%
+      \edef\svg at tempa{"\svg at tempa"}%
+    \fi%
+%    \end{macrocode}
+% If \cs{svgpath} was used, it is searched first. If nothing was found, 
+% \cs{graphicspath} is considered if defined followed by a path given in the 
+% third argument. If nothing was found yet, the standard \cs{input at path} is 
+% searched last.
+%    \begin{macrocode}
+    \@svg at file@foundfalse%
+    \let\input at path\svg at path%
+    \svg at get@@path{\svg at tempa}%
+    \if at svg@file at found\else%
+      \ifx\Ginput at path\@undefined\else%
+        \let\input at path\Ginput at path%
+        \svg at get@@path{\svg at tempa}%
+      \fi%
+    \fi%
+    \IfArgIsEmpty{#3}{}{%
+      \if at svg@file at found\else%
+        \ifx#3\@undefined\else%
+          \edef\svg at tempb{{#3}}%
+          \let\input at path\svg at tempb%
+          \svg at get@@path{\svg at tempa}%
+        \fi%
+      \fi%
+    }%
+    \edef\svg at tempa{%
+      \endgroup%
+      \if at svg@file at found%
+        \noexpand\@svg at file@foundtrue%
+        \noexpand\def\noexpand\svg at file@path{\filename at area}%
+        \noexpand\def\noexpand\svg at file@name{\filename at base}%
+        \noexpand\def\noexpand\svg at file@base{\filename at area\filename at base}%
+      \else%
+        \noexpand\@svg at file@foundfalse%
+        \noexpand\def\noexpand\svg at file@path{}%
+        \noexpand\def\noexpand\svg at file@name{#2}%
+        \noexpand\def\noexpand\svg at file@base{#2}%
+      \fi%
+    }%
+  \svg at tempa%
+}
+%    \end{macrocode}
+% The macro \cs{svg at get@@path} does the actual search job.
+%    \begin{macrocode}
+\newcommand*\svg at get@@path[1]{%
+% The specified file is searched with \cs{IfFileExists}. If the file search was 
+% succesful, the macro \cs{svg at filename@parse} is called with the result.
+%    \begin{macrocode}
+  \expandafter\IfFileExists\expandafter{#1}{%
+    \@svg at file@foundtrue%
+    \expandafter\svg at filename@parse\expandafter{\@filef at und}%
+  }{}%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at file@suffix
+% \end{macro}^^A \svg at file@base
+% \end{macro}^^A \svg at file@name
+% \end{macro}^^A \svg at file@path
+% \end{macro}^^A \if at svg@file at found
+% \end{macro}^^A \svg at get@@path
+% \end{macro}^^A \svg at get@path
+% \begin{macro}{\svg at filename@parse}
+% As the internal \LaTeXe{} command \cs{filename at parse} is not able to split a 
+% given file name containing quotes, \cs{svg at filename@parse} is defined to 
+% resolve this problem.
+%    \begin{macrocode}
+\newcommand*\svg at filename@parse[1]{%
+  \begingroup%
+    \def\svg at tempa##1{%
+      \def\svg at tempb####1####2\@nil{%
+        \ifstr{####1}{"}{\def\svg at tempb{####2}}{\def\svg at tempb{####1####2}}%
+      }%
+      \expandafter\svg at tempb##1\@nil%
+      \edef##1{\svg at tempb}%
+    }%
+%    \end{macrocode}
+% The given path and file is parsed with \cs{filename at parse}. If an extension 
+% was found, it is appended to the file name for a second parsing run.
+%    \begin{macrocode}
+    \filename at parse{#1}%
+    \ifx\filename at ext\relax\else%
+      \edef\filename at base{\filename at base.\filename at ext}%
+    \fi%
+%    \end{macrocode}
+% If there are quotes in the file path, the closing one will be found as first 
+% character in \cs{filename at base} as \cs{filename at area} is splitted at the last
+% slash. This leading quote is removed from \cs{filename at base} with 
+% \cs{svg at tempa}.
+%    \begin{macrocode}
+    \svg at quotes@check{\filename at area}%
+    \if at svg@quotes at found%
+      \svg at quotes@remove{\filename at area}%
+      \edef\filename at area{"\filename at area"}%
+      \svg at tempa{\filename at base}%
+    \fi%
+%    \end{macrocode}
+% Before the second call of \cs{filename at parse} remaining quotes are removed 
+% and the path in \cs{filename at area} is temporary stored in \cs{svg at tempa}.
+%    \begin{macrocode}
+    \svg at quotes@check{\filename at base}%
+    \if at svg@quotes at found%
+      \svg at quotes@remove{\filename at base}%
+    \fi%
+    \let\svg at tempa\filename at area%
+    \expandafter\filename at parse\expandafter{\filename at base}%
+    \let\filename at area\svg at tempa%
+    \if at svg@quotes at found%
+       \edef\filename at base{"\filename at base"}%
+    \fi%
+%    \end{macrocode}
+% With \cs{svg at tempa} the group is closed and the results are saved in the
+% macros \cs{filename@\dots}.
+%    \begin{macrocode}
+    \edef\svg at tempa{%
+      \noexpand\endgroup%
+      \noexpand\def\noexpand\filename at area{\filename at area}%
+      \noexpand\def\noexpand\filename at base{\filename at base}%
+      \ifx\filename at ext\relax%
+        \noexpand\let\noexpand\filename at ext\noexpand\relax%
+      \else%
+        \noexpand\def\noexpand\filename at ext{\filename at ext}%
+      \fi%
+    }%
+  \svg at tempa%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at filename@parse
+% \begin{macro}{\svg at file@missing}
+% The error message, which is raised, if a file is missing either after the 
+% export with \app{Inkscape} or in general.
+%    \begin{macrocode}
+\newcommand*\svg at file@missing[3][]{%
+  \begingroup%
+    \edef\svg at tempa{#2}%
+    \expandafter\svg at filename@parse\expandafter{\svg at tempa}%
+    \svg at quotes@remove{\filename at area}%
+    \svg at quotes@remove{\filename at base}%
+    \ifx\filename at ext\relax\else%
+      \svg at quotes@remove{\filename at ext}%
+    \fi%
+    \IfArgIsEmpty{#1}{%
+      \def\svg at tempa{%
+        Did you run the export with Inkscape? There's no file\MessageBreak%
+        `\filename at area\filename at base.\filename at ext'%
+      }%
+    }{%
+      \edef\filename at ext{#1}%
+      \edef\svg at tempb{#3}%
+      \ifstr{\svg at tempb}{./}{\let\svg at tempb\@empty}{}%
+      \ifstr{\filename at area}{./}{\let\filename at area\@empty}{}%
+      \def\svg at tempa{%
+        There's no file `\filename at base.\filename at ext'\MessageBreak%
+        \ifx\filename at area\@empty%
+          neither in the current directory nor\MessageBreak%
+          any other searched path given by\MessageBreak%
+          \string\svgpath%
+          \ifx\svg at path\@undefined\space\else%
+            \space(\svg at path)\MessageBreak%
+          \fi%
+           or \string\graphicspath%
+          \ifx\Ginput at path\@undefined\else%
+            \space(\Ginput at path)%
+          \fi%
+          \ifx\svg at tempb\@empty\else%
+            \MessageBreak or even `inkscapepath' (`\svg at tempb')%
+          \fi.%
+        \else%
+          in folder `\filename at area'.%
+        \fi%
+      }%
+    }%
+    \PackageError{svg}{%
+      File `\filename at base.\filename at ext' is missing%
+    }{\svg at tempa}%
+  \endgroup%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at file@missing
+% \begin{macro}{\svg at iffilenewer}
+% The macro \cs{svg at iffilenewer} is used to decide, whether the export with 
+% \app{Inkscape} is necessarry due to an updated SVG~file. This can only be
+% done, if \cs{pdf at filemoddate} is definied. Unfortunately this functionality
+% isn't provided by Xe\TeX.
+%    \begin{macrocode}
+\ifx\pdf at filemoddate\@undefined
+  \newcommand*\svg at iffilenewer[2]{\@gobbletwo}
+\else
+  \newcommand*\svg at iffilenewer[2]{%
+    \begingroup%
+      \edef\svg at tempa{\pdf at filemoddate{#1}}%
+      \edef\svg at tempb{\pdf at filemoddate{#2}}%
+      \ifnum\pdf at strcmp{\svg at tempa}{\svg at tempb}>\z@\relax%
+        \aftergroup\@firstoftwo%
+      \else%
+        \aftergroup\@secondoftwo%
+      \fi%
+    \endgroup%
+  }
+\fi
+%    \end{macrocode}
+% \end{macro}^^A \svg at iffilenewer
+%
+%
+%
+% \subsection{Optional Parameters for user commands}
+%
+% \begin{macro}{\svg at local@param at set}
+% \begin{macro}{\svg at local@param at use}
+% \begin{macro}{\svg at local@param at def}
+% Most of the package options can also be used as optional parameters for 
+% \cs{includesvg} or \cs{includeinkscape}. Some of them are overloaded for the 
+% usage as optional argument and there are some keys, which \emph{only} can be
+% used as optional parameters. This is realized in such a way that
+% \cs{svg at local@param at use} is extended with \cs{svg at local@param at def} by the
+% definition of local keys during the loading of package \pkg{svg}.
+%    \begin{macrocode}
+\newcommand*\svg at local@param at set[1]{%
+  \svg at local@param at use%
+  \FamilyOptions{SVG}{#1}%
+%    \end{macrocode}
+% As \cs{svg at local@param at set} is always used in a local group, it is possible 
+% to set \opt{inkscapelatex} to \val{false}, if the output format was set to 
+% \val{png} with option \opt{inkscapeformat}.
+%    \begin{macrocode}
+  \ifstr{\svg at ink@format}{png}{\FamilyOptions{SVG}{inkscapelatex=false}}{}%
+}
+\newcommand*\svg at local@param at use{}
+\newcommand*\svg at local@param at def[1]{%
+  \edef\svg at local@param at use{%
+    \unexpanded\expandafter{\svg at local@param at use}\unexpanded{#1}%
+  }%
+}
+\DefineFamilyMember[.param]{SVG}
+%    \end{macrocode}
+% \end{macro}^^A \svg at local@param at def
+% \end{macro}^^A \svg at local@param at use
+% \end{macro}^^A \svg at local@param at set
+%
+%
+%
+% \subsection{User commands}
+%
+% \begin{macro}{\svgsetup}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{macro}{\setsvg}
+% \changes{v2.00}{2017/02/17}{deprecated}
+% The macro \cs{svgsetup} can be used to change options after loading the 
+% package \pkg{svg} both in preamble and the document body. For compatibility 
+% reasons, \cs{setsvg} is also defined.
+%    \begin{macrocode}
+\newcommand*\svgsetup{\FamilyOptions{SVG}}
+\newcommand*\setsvg{\FamilyOptions{SVG}}
+%    \end{macrocode}
+% \end{macro}^^A \setsvg
+% \end{macro}^^A \svgsetup
+% \begin{macro}{\svgpath}
+% \changes{v2.00}{2017/02/12}{new}
+% \begin{macro}{\svg at path}
+% With \cs{svgpath} the user can give several root paths to SVG~files in the
+% same way as \cs{graphicspath} is used. The only difference is that a missing
+% slash is added at the end of the path, if needed.
+%    \begin{macrocode}
+\newcommand*\svg at path{}
+\let\svg at path\input at path
+\newcommand*\svgpath[1]{%
+  \def\svg at tempb{}%
+  \@tfor\svg at tempa:=#1\do{%
+    \ifx\svg at tempa\@empty\else%
+      \svg at normalize@path{\svg at tempa}%
+      \edef\svg at tempb{\svg at tempb{\svg at tempa}}%
+    \fi%
+  }%
+  \ifx\svg at tempb\@empty\else%
+    \let\svg at path\svg at tempb%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at path
+% \end{macro}^^A \svgpath
+% \begin{macro}{\includesvg}
+% \changes{v2.00}{2017/02/17}{changes, especially to optional parameters}
+% For the inclusion of SVG~files the command \cs{includesvg} is defined.
+%    \begin{macrocode}
+\newcommand*{\includesvg}[2][]{%
+  \begingroup%
+%    \end{macrocode}
+% Checking for deprecated commands \cs{svgwidth} and \cs{svgscale}.
+%    \begin{macrocode}
+    \svg at deprecated@param%
+%    \end{macrocode}
+% \begin{parameter}{inkscape}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{parameter}{inkscapeformat}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{parameter}{inkscapelatex}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{parameter}{inkscapearea}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{parameter}{inkscapedpi}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{parameter}{inkscapeopt}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{parameter}{width}
+% \begin{parameter}{height}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{parameter}{scale}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{parameter}{pretex}
+% \begin{parameter}{apptex}
+% \begin{parameter}{draft}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{parameter}{extract}
+% \begin{parameter}{extractpreamble}
+% \begin{parameter}{extractformat}
+% \begin{parameter}{extractwidth}
+% \begin{parameter}{extractheight}
+% \begin{parameter}{extractscale}
+% \begin{parameter}{extractpretex}
+% \begin{parameter}{extractapptex}
+% \begin{parameter}{extractruns}
+% \begin{parameter}{latexopt}
+% \begin{parameter}{convert}
+% \begin{parameter}{convertformat}
+% \begin{parameter}{convertdpi}
+% \begin{parameter}{magicksetting}
+% \begin{parameter}{magickoperator}
+% \begin{parameter}{gsopt}
+% \begin{parameter}{gsdevice}
+% \begin{parameter}{clean}
+% \begin{parameter}{exclude}
+% Most of the optional parameters have the same effect as the identically named
+% options. Only parameter \prm{lastpage} is extended (see below). Moreover,
+% there are some additional parameters, which can only be used as optional
+% argument for \cs{includesvg} (\prm{angle} and \prm{origin}) but not as an 
+% option. Now all parameters are set in local context (within a group).
+%    \begin{macrocode}
+    \svg at local@param at set{#1}%
+%    \end{macrocode}
+% \end{parameter}^^A exclude
+% \end{parameter}^^A clean
+% \end{parameter}^^A gsdevice
+% \end{parameter}^^A gsopt
+% \end{parameter}^^A magickoperator
+% \end{parameter}^^A magicksetting
+% \end{parameter}^^A convertdpi
+% \end{parameter}^^A convertformat
+% \end{parameter}^^A convert
+% \end{parameter}^^A latexopt
+% \end{parameter}^^A extractruns
+% \end{parameter}^^A extractapptex
+% \end{parameter}^^A extractpretex
+% \end{parameter}^^A extractscale
+% \end{parameter}^^A extractheight
+% \end{parameter}^^A extractwidth
+% \end{parameter}^^A extractformat
+% \end{parameter}^^A extractpreamble
+% \end{parameter}^^A extract
+% \end{parameter}^^A draft
+% \end{parameter}^^A apptex
+% \end{parameter}^^A pretex
+% \end{parameter}^^A scale
+% \end{parameter}^^A height
+% \end{parameter}^^A width
+% \end{parameter}^^A inkscapeopt
+% \end{parameter}^^A inkscapedpi
+% \end{parameter}^^A inkscapearea
+% \end{parameter}^^A inkscapelatex
+% \end{parameter}^^A inkscapeformat
+% \end{parameter}^^A inkscape
+% The file suffix used by both packages \pkg{svg} and \pkg{svg-extract}.
+%    \begin{macrocode}
+    \if at svg@ink at latex%
+      \def\svg at file@suffix{_svg-tex}%
+    \else%
+      \def\svg at file@suffix{_svg-raw}%
+    \fi%
+    \@onelevel at sanitize\svg at file@suffix%
+%    \end{macrocode}
+% Searching all given paths for the relevant SVG~file.
+%    \begin{macrocode}
+    \svg at get@path{#2}{}%
+    \if at svg@file at found%
+%    \end{macrocode}
+% Running the export with \app{Inkscape} (if necessarry) and checking the 
+% required files for graphic inclusion.
+%    \begin{macrocode}
+      \svg at ink@run%
+      \IfFileExists{\svg at out@base}{}{%
+        \@svg at file@foundfalse%
+        \svg at file@missing{\svg at out@base}{}%
+      }%
+      \if at svg@ink at latex%
+        \IfFileExists{\svg at out@base_tex}{}{%
+          \@svg at file@foundfalse%
+          \svg at file@missing{\svg at out@base_tex}{}%
+        }%
+      \fi%
+%    \end{macrocode}
+% Include the resulting graphic file and maybe extract independent files.
+%    \begin{macrocode}
+      \if at svg@file at found%
+        \svg at input{\svg at out@base}%
+        \svg at extract{\svg at out@base}%
+      \fi%
+    \else%
+%    \end{macrocode}
+% Raise an error, if the requested SVG~file wasn't found.
+%    \begin{macrocode}
+      \svg at file@missing[svg]{\svg at file@base}{}%
+    \fi%
+  \endgroup%
+}
+%    \end{macrocode}
+% \begin{parameter}{lastpage}
+% \changes{v2.00}{2017/02/17}{new}
+% In addition to the automatic finding of the last page, which is included, it 
+% can also be given directly as parameter.
+%    \begin{macrocode}
+\svg at local@param at def{%
+  \FamilyCounterKey[.param]{SVG}{lastpage}{svg at param@lastpage}%
+}
+%    \end{macrocode}
+% \end{parameter}^^A lastpage
+% \begin{parameter}{angle}
+% \changes{v2.00}{2017/02/17}{new}
+% \begin{parameter}{origin}
+% \changes{v2.00}{2017/02/17}{new}
+% The parameters \prm{angle} and \prm{origin} are definied as pendants to the 
+% keys provided by \cs{includegraphics}.
+%    \begin{macrocode}
+\newcommand*\svg at param@angle{0}
+\svg at local@param at def{%
+  \DefineFamilyKey[.param]{SVG}{angle}{%
+    \renewcommand*\svg at param@angle{#1}%
+    \FamilyKeyStateProcessed%
+  }%
+}
+\newcommand*\svg at param@origin{c}
+\svg at local@param at def{%
+  \DefineFamilyKey[.param]{SVG}{origin}[c]{%
+    \renewcommand*\svg at param@origin{#1}%
+    \FamilyKeyStateProcessed%
+  }%
+}
+%    \end{macrocode}
+% \end{parameter}^^A origin
+% \end{parameter}^^A angle
+% \end{macro}^^A \includesvg
+% \begin{macro}{\includeinkscape}
+% \changes{v2.00}{2017/02/23}{new}
+% The command \cs{includeinkscape} can be used for including the export results 
+% of \app{Inkscape}, if this part of the job was done in another way.
+%    \begin{macrocode}
+\newcommand*{\includeinkscape}[2][]{%
+  \begingroup%
+%    \end{macrocode}
+% Checking for deprecated commands \cs{svgwidth} and \cs{svgscale}.
+%    \begin{macrocode}
+    \svg at deprecated@param%
+%    \end{macrocode}
+% The given file extension is examined, where a known extension overwrites the 
+% current setting for \opt{inkscapeformat}. If there's a suffix \file{\_tex}, 
+% the option \opt{inkscapelatex} is set to \val{true} by default.
+%    \begin{macrocode}
+    \filename at parse{#2}%
+    \ifx\filename at ext\relax\else%
+      \svg at quotes@remove{\filename at ext}%
+      \expandafter\lowercase\expandafter{%
+        \expandafter\def\expandafter\filename at ext\expandafter{\filename at ext}%
+      }%
+      \let\svg at tempb\filename at ext%
+      \def\svg at tempa##1_tex##2\@nil{\def\svg at tempb{##1}}%
+      \expandafter\svg at tempa\svg at tempb_tex\@nil%
+      \@for\svg at tempa:={pdf,eps,ps,png}\do{%
+        \ifstr{\svg at tempb}{\svg at tempa}{%
+          \edef\svg at tempa{%
+            \noexpand\FamilyOptions{SVG}{inkscapeformat=\svg at tempb}%
+          }%
+          \svg at tempa%
+        }{}%
+      }%
+      \ifstr{\filename at ext}{\svg at ink@format_tex}{%
+        \FamilyOptions{SVG}{inkscapelatex=true}%
+      }{}%
+    \fi%
+%    \end{macrocode}
+% \begin{parameter}{inkscapeformat}
+% \begin{parameter}{inkscapelatex}
+% \begin{parameter}{width}
+% \begin{parameter}{height}
+% \begin{parameter}{scale}
+% \begin{parameter}{pretex}
+% \begin{parameter}{apptex}
+% \begin{parameter}{draft}
+% \begin{parameter}{lastpage}
+% \begin{parameter}{angle}
+% \begin{parameter}{origin}
+% \begin{parameter}{extract}
+% \begin{parameter}{extractpreamble}
+% \begin{parameter}{extractformat}
+% \begin{parameter}{extractwidth}
+% \begin{parameter}{extractheight}
+% \begin{parameter}{extractscale}
+% \begin{parameter}{extractpretex}
+% \begin{parameter}{extractapptex}
+% \begin{parameter}{extractruns}
+% \begin{parameter}{latexopt}
+% \begin{parameter}{convert}
+% \begin{parameter}{convertformat}
+% \begin{parameter}{convertdpi}
+% \begin{parameter}{magicksetting}
+% \begin{parameter}{magickoperator}
+% \begin{parameter}{gsopt}
+% \begin{parameter}{gsdevice}
+% \begin{parameter}{clean}
+% \begin{parameter}{exclude}
+% All parameters which are supported by \cs{includesvg} can also be used with 
+% \cs{includeinkscape} even if some of them---more precisely those that control 
+% the export with \app{Inkscape}---don't have an effect at all. Nevertheless, 
+% they are set right now in local context (within a group).
+%    \begin{macrocode}
+    \svg at local@param at set{#1}%
+%    \end{macrocode}
+% \end{parameter}^^A exclude
+% \end{parameter}^^A clean
+% \end{parameter}^^A gsdevice
+% \end{parameter}^^A gsopt
+% \end{parameter}^^A magickoperator
+% \end{parameter}^^A magicksetting
+% \end{parameter}^^A convertdpi
+% \end{parameter}^^A convertformat
+% \end{parameter}^^A convert
+% \end{parameter}^^A latexopt
+% \end{parameter}^^A extractruns
+% \end{parameter}^^A extractapptex
+% \end{parameter}^^A extractpretex
+% \end{parameter}^^A extractscale
+% \end{parameter}^^A extractheight
+% \end{parameter}^^A extractwidth
+% \end{parameter}^^A extractformat
+% \end{parameter}^^A extractpreamble
+% \end{parameter}^^A extract
+% \end{parameter}^^A origin
+% \end{parameter}^^A angle
+% \end{parameter}^^A lastpage
+% \end{parameter}^^A draft
+% \end{parameter}^^A apptex
+% \end{parameter}^^A pretex
+% \end{parameter}^^A scale
+% \end{parameter}^^A height
+% \end{parameter}^^A width
+% \end{parameter}^^A inkscapelatex
+% \end{parameter}^^A inkscapeformat
+% Searching all given paths for the relevant PDF/EPS~file.
+%    \begin{macrocode}
+    \expandafter\svg at get@path\expandafter[\svg at ink@format]{#2}{\svg at out@path}%
+    \if at svg@file at found%
+%    \end{macrocode}
+% Checking the required files for graphic inclusion.
+%    \begin{macrocode}
+      \edef\svg at out@name{\svg at file@name}%
+      \edef\svg at out@base{\svg at file@path\svg at file@name.\svg at ink@format}%
+      \if at svg@ink at latex%
+        \IfFileExists{\svg at out@base_tex}{}{%
+          \@svg at file@foundfalse%
+          \svg at file@missing{\svg at out@base_tex}{}%
+        }%
+      \fi%
+%    \end{macrocode}
+% Include the resulting graphic file and maybe extract independent files.
+%    \begin{macrocode}
+      \if at svg@file at found%
+        \svg at input{\svg at out@base}%
+        \svg at extract{\svg at out@base}%
+      \fi%
+    \else%
+%    \end{macrocode}
+% Raise an error, if the requested PDF/EPS~file wasn't found.
+%    \begin{macrocode}
+      \svg at file@missing[\svg at ink@format]{\svg at file@base}{\svg at out@path}%
+    \fi%
+  \endgroup%
+}
+%    \end{macrocode}
+% \end{macro}^^A \includeinkscape
+%
+%
+%
+% \subsection{Auxiliary macros}
+%
+% \begin{macro}{\svg at deprecated@param}
+% This macro checks, if \cs{svgwidth} or \cs{svgscale} are defined. In this 
+% case, the given values are passed to the correlating parameters and a warning 
+% is raised.
+%    \begin{macrocode}
+\newcommand*\svg at deprecated@param{%
+  \@svg at tempswafalse%
+  \ifx\svgwidth\@undefined\else%
+    \edef\svg at tempa{\noexpand\FamilyOptions{SVG}{width=\svgwidth}}%
+    \svg at tempa%
+    \@svg at tempswatrue%
+  \fi%
+  \ifx\svgscale\@undefined\else%
+    \edef\svg at tempa{\noexpand\FamilyOptions{SVG}{scale=\svgscale}}%
+    \svg at tempa%
+    \@svg at tempswatrue%
+  \fi%
+  \if at svg@tempswa%
+    \PackageWarning{svg}{%
+      You should specify the image size with parameters\MessageBreak%
+      `width' and `height' or `scale' instead of using\MessageBreak%
+      `\string\svgscale' or `\string\svgwidth'%
+    }%
+    \let\svgwidth\@undefined%
+    \let\svgscale\@undefined%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at deprecated@param
+% \begin{macro}{\svg at ink@run}
+% \begin{macro}{\if at svg@ink at run}
+% The command, which performs the call of \app{Inkscape} via \cs{ShellEscape}.
+%    \begin{macrocode}
+\newif\if at svg@ink at run
+\newcommand*\svg at ink@run{%
+  \ifnum\svg at ink@mode>\z@\relax%
+    \begingroup%
+%    \end{macrocode}
+% If the mode for \opt{inkscape} was set to \val{forced}, \app{Inkscape} will 
+% be called in any case. Otherwise, some checks are performed to detect, if a
+% run of \app{Inkscape} is actually necessarry.
+%    \begin{macrocode}
+      \@svg at ink@runtrue%
+      \ifnum\svg at ink@mode=\tw@\relax\else%
+%    \end{macrocode}
+% This is the case when the SVG~file is newer than the corresponding exported
+% file, or if the latter isn't present at all.
+%    \begin{macrocode}
+        \svg at iffilenewer{\svg at file@base.svg}{\svg at out@base}{}{%
+          \@svg at ink@runfalse%
+        }%
+%    \end{macrocode}
+% The same is true, when the associated \LaTeX~file is missing. But when this 
+% file already exists, maybe the user did some changes to this file. In this 
+% case, overwriting this file is maybe not intended.
+%    \begin{macrocode}
+        \if at svg@ink at latex%
+          \IfFileExists{\svg at out@base_tex}{%
+            \ifnum\pdf at shellescape=\@ne\relax\if at svg@ink at run%
+              \svg at iffilenewer{\svg at out@base_tex}{\svg at out@base}{%
+                \@svg at ink@runfalse%
+                \edef\svg at tempa{\svg at out@base}%
+                \svg at quotes@remove{\svg at tempa}%
+                \PackageWarning{svg}{%
+                  Since the encountered filedate of file\MessageBreak%
+                  `\svg at tempa_tex' is newer than \MessageBreak%
+                  `\svg at tempa' it's supposed that\MessageBreak%
+                  you customized this file. To avoid an accidental\MessageBreak%
+                  overwriting of this file, the Inkscape export\MessageBreak%
+                  won't be done. If you want to overwrite the\MessageBreak%
+                  existing file please choose the parameter\MessageBreak%
+                  `inkscape=force'%
+                }%
+              }{}%
+            \fi\fi%
+          }{\@svg at ink@runtrue}%
+        \fi%
+      \fi%
+%    \end{macrocode}
+% If all checks were positive, the export with \app{Inkscape} can be done in 
+% case \file{-{}-shell-escape} is enabled.
+%    \begin{macrocode}
+      \if at svg@ink at run%
+        \ifnum\pdf at shellescape=\@ne\relax%
+%    \end{macrocode}
+% For exporting PNG~files, the used density ist set to \val{300dpi}, if no
+% value was given.
+%    \begin{macrocode}
+          \ifx\svg at ink@dpi\relax%
+            \ifstr{\svg at ink@format}{png}{%
+              \FamilyOptions{SVG}{inkscapedpi=300}%
+            }{}%
+          \fi%
+          \PackageInfo{svg}{%
+            Calling Inkscape%
+            \ifx\svg at ink@opt\@empty\else%
+              \space with added options `\svg at ink@opt'%
+            \fi%
+          }%
+%    \end{macrocode}
+% Executing \app{Inkscape} on command line. Afterwards, the export results are 
+% moved into the given output path.
+%    \begin{macrocode}
+          \edef\svg at tempa{\svg at file@base}%
+          \edef\svg at tempb{\svg at out@name}%
+          \svg at quotes@remove{\svg at tempa}%
+          \svg at quotes@remove{\svg at tempb}%
+          \ShellEscape{\svg at ink@cmd{\svg at tempa}{\svg at tempb}}%
+          \IfFileExists{\svg at out@name.\svg at ink@format}{%
+            \edef\svg at tempb{\svg at tempb.\svg at ink@format}%
+            \svg at quotes@remove{\svg at out@base}%
+            \svg at shell@mkdir{\svg at out@path}%
+            \svg at shell@move{\svg at tempb}{\svg at out@base}%
+            \if at svg@ink at latex%
+              \svg at shell@move{\svg at tempb_tex}{\svg at out@base_tex}%
+            \fi%
+          }{%
+            \PackageWarning{svg}{%
+              The export with Inkscape failed for file\MessageBreak%
+              `\svg at tempa.svg'\MessageBreak%
+              Troubleshooting: Please check in the log file how\MessageBreak%
+              the invocation of Inkscape took place and try to\MessageBreak%
+              execute it yourself in the terminal%
+            }%
+          }%
+%    \end{macrocode}
+% If \file{-{}-shell-escape} wasn't enabled, a warning is issued.
+%    \begin{macrocode}
+        \else%
+          \edef\svg at tempa{\svg at file@base}%
+          \svg at quotes@remove{\svg at tempa}%
+          \PackageWarning{svg}{%
+            You didn't enable `shell escape' (or `write18')\MessageBreak%
+            so it wasn't possible to launch the Inkscape export\MessageBreak%
+            for `\svg at tempa.svg'%
+          }%
+        \fi%
+      \fi%
+    \endgroup%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \if at svg@ink at run
+% \end{macro}^^A \svg at ink@run
+% \begin{macro}{\svg at ink@cmd}
+% The actual call of \app{Inkscape} at command line.
+%    \begin{macrocode}
+\newcommand*\svg at ink@cmd[2]{%
+  \svg at ink@exe\space-z\space\svg at ink@area\space%
+  \ifx\svg at ink@dpi\relax\else--export-dpi=\svg at ink@dpi\space\fi%
+  \if at svg@ink at latex--export-latex\space\fi%
+  \svg at ink@opt\space%
+  --file="#1.svg"\space%
+  --export-\svg at ink@format="#2.\svg at ink@format"\space%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at ink@cmd
+% \begin{macro}{\svg at get@lastpage}
+% This macro is used to circumvent the multiple pages bug for PDF~files of
+% \app{Inkscape}~0.91, when the the \LaTeX~export was enabled. For this 
+% purpose, the total page number is read from the PDF~file. 
+%    \begin{macrocode}
+\newcommand*\svg at get@lastpage[1]{%
+  \ifstr{\svg at ink@format}{pdf}{%
+    \begingroup%
+      \svg at tempcnt=\m at ne\relax%
+      \ifx\XeTeXpdfpagecount\@undefined%
+        \ifpdf%
+          \ifx\pdfximage\@undefined%
+            \ifx\saveimageresource\@undefined\else%
+              \saveimageresource{#1}%
+              \svg at tempcnt=\lastsavedimageresourcepages\relax%
+            \fi%
+          \else%
+            \pdfximage{#1}%
+            \svg at tempcnt=\pdflastximagepages\relax%
+          \fi%
+        \fi%
+      \else%
+        \svg at tempcnt=\XeTeXpdfpagecount#1\relax%
+      \fi%
+      \ifnum\svg at tempcnt=\m at ne\relax%
+        \PackageWarning{svg}{%
+          It wasn't possible to detect the last page\MessageBreak%
+          of `#1'%
+        }%
+      \else%
+        \PackageInfo{svg}{Last page of `#1' is \the\svg at tempcnt}%
+      \fi%
+      \edef\svg at tempa{%
+        \noexpand\endgroup%
+        \noexpand\FamilyOptions{SVG}{lastpage=\the\svg at tempcnt}%
+      }%
+    \svg at tempa%
+  }{}%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at get@lastpage
+% \begin{macro}{\svg at wrn@scale}
+% The option \opt{scale} respectively the parameter \prm{scale} is only 
+% considered if the size was not specified.
+%    \begin{macrocode}
+\newcommand*\svg at wrn@scale{%
+  \ifdim\dimexpr\svg at param@scale\p@\relax=\p@\relax\else%
+    \@svg at tempswafalse%
+    \ifdim\svg at param@width>\z@\relax%
+      \@svg at tempswatrue%
+    \fi%
+    \ifdim\svg at param@height>\z@\relax%
+      \@svg at tempswatrue%
+    \fi%
+    \if at svg@tempswa%
+      \PackageWarning{svg}{%
+        The parameter `scale' is only considered if neither\MessageBreak%
+        `width' nor `height' are specified%
+      }%
+    \fi%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at wrn@scale
+% \begin{macro}{\svg at input}
+% \begin{macro}{\svg@@input}
+% With \cs{svg@@input} the export results of \app{Inkscape} are included. The 
+% macro \cs{svg at input} is defined in order to realize the option \opt{exclude} 
+% for package \pkg{svg-extract}.
+%    \begin{macrocode}
+\newcommand*\svg at input{\svg@@input}
+\newcommand*\svg@@input[2][]{%
+  \IfArgIsEmpty{#1}{}{\svg at local@param at set{#1}}%
+  \if at svg@draft%
+    \@svg at ink@latexfalse%
+  \fi%
+%    \end{macrocode}
+% If the export with \app{Inkscape} was done with \LaTeX~support enabled, the 
+% corresponding file will be used together with \cs{input}. The necessary 
+% patches to environment \env{picture} as well as command \cs{includegraphics} 
+% are made beforehand with \cs{svg at patches}.
+%    \begin{macrocode}
+  \edef\svg at tempa{#2}%
+  \if at svg@ink at latex%
+    \svg at patches{\svg at tempa}%
+    \ifnum\value{svg at param@lastpage}=\z@\relax%
+      \expandafter\svg at get@lastpage\expandafter{\svg at tempa}%
+    \fi%
+    \edef\svg at tempa{%
+      \ifx\svg at param@pretex\relax\else%
+        \noexpand\svg at param@pretex%
+      \fi%
+      \noexpand\input{\svg at tempa_tex}%
+      \ifx\svg at param@apptex\relax\else%
+        \noexpand\svg at param@apptex%
+      \fi%
+    }%
+%    \end{macrocode}
+% If a rotation angle was given, the input is done within \cs{rotatebox}.
+%    \begin{macrocode}
+    \ifdim\dimexpr\svg at param@angle\p@\relax=\z@\relax%
+      \svg at tempa%
+    \else%
+      \edef\svg at tempb{origin=\svg at param@origin}%
+      \expandafter\rotatebox\expandafter[\svg at tempb]{\svg at param@angle}{%
+        \svg at tempa%
+      }%
+    \fi%
+  \else%
+%    \end{macrocode}
+% If the export with \app{Inkscape} was done without \LaTeX~support, the 
+% resulting graphic file will be included with \cs{includegraphics}.
+%    \begin{macrocode}
+    \svg at wrn@scale%
+    \edef\svg at tempb{keepaspectratio,scale=\svg at param@scale}%
+    \ifdim\svg at param@height>\z@\relax%
+      \edef\svg at tempb{\svg at tempb,height=\svg at param@height}%
+    \fi%
+    \ifdim\svg at param@width>\z@\relax%
+      \edef\svg at tempb{\svg at tempb,width=\svg at param@width}%
+    \fi%
+    \ifdim\dimexpr\svg at param@angle\p@\relax=\z@\relax\else%
+      \edef\svg at tempb{%
+        \svg at tempb,origin=\svg at param@origin,angle=\svg at param@angle%
+      }%
+    \fi%
+    \if at svg@draft%
+      \edef\svg at tempb{\svg at tempb,draft}%
+    \else%
+      \edef\svg at tempb{\svg at tempb,draft=false}%
+    \fi%
+    \expandafter\includegraphics\expandafter[\svg at tempb]{\svg at tempa}%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg@@input
+% \end{macro}^^A \svg at input
+%
+%
+%
+% \subsection{Patches}
+%
+% \begin{macro}{\svg at patches}
+% For including the export results from \app{Inkscape} with \LaTeX~support 
+% enabled, there are some patches necessarry for environment \env{picture} and 
+% \cs{includegraphics}. Those patches are done with \cs{svg at patches}.
+%    \begin{macrocode}
+\newcommand*\svg at patches[1]{%
+  \let\svg at picture@saved\picture%
+  \let\picture\svg at picture@patched%
+  \let\svg at includegraphics@saved\includegraphics%
+  \let\includegraphics\svg at includegraphics@patched%
+  \edef\svg at includegraphics@file{#1}%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at patches
+% \begin{macro}{\svg at picture@saved}
+% \begin{macro}{\svg at pictur@patched}
+% In order to provide the possibility specify the desired width of a graphic, 
+% the appropriate \cs{unitlength} is calculated at the beginning of the 
+% \env{picture}~environment.
+%    \begin{macrocode}
+\newcommand*\svg at picture@saved{}
+\newcommand*\svg at picture@patched{}
+\newcommand*\svg at pictur@patched{}
+\long\def\svg at picture@patched#1{\svg at pictur@patched@#1}
+\def\svg at pictur@patched@(#1,#2){%
+  \svg at wrn@scale%
+%    \end{macrocode}
+% If a desired height is present, the resulting \cs{unitlength} is calculated 
+% with the ratio of the coordinates of the \env{picture}~environment given as 
+% arguments for x- and y-direction by using \cs{Gscale at div}. With this factor, 
+% \cs{unitlength}---which is connected to the x-coordinate---can be scaled in a 
+% suitable manner.
+%    \begin{macrocode}
+  \ifdim\svg at param@height>\z@\relax%
+    \Gscale at div\svg at tempa{#1\p@}{#2\p@}%
+    \setlength\unitlength{\svg at param@height}%
+    \setlength\unitlength{\svg at tempa\unitlength}%
+    \ifdim\svg at param@width>\z@\relax%
+      \ifdim\unitlength>\svg at param@width\relax%
+        \setlength\unitlength{\svg at param@width}%
+      \fi%
+    \fi%
+  \else%
+%    \end{macrocode}
+% If no height is given, \cs{unitlength} can be set easily.
+%    \begin{macrocode}
+    \ifdim\svg at param@width>\z@\relax%
+      \setlength\unitlength{\svg at param@width}%
+    \else%
+      \setlength\unitlength{\svg at param@scale\unitlength}%
+    \fi%
+  \fi%
+%    \end{macrocode}
+% After setting \cs{unitlength}, the \env{picture}~environment can be called 
+% with its original definition.
+%    \begin{macrocode}
+  \svg at picture@saved(#1,#2)%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at pictur@patched
+% \end{macro}^^A \svg at picture@saved
+% \begin{macro}{\svg at includegraphics@saved}
+% \begin{macro}{\svg at includegraphics@patched}
+% \begin{macro}{\svg at includegraphics@file}
+% The patch to \cs{includegraphics} is meant to dissolve the \app{Inkscape} bug 
+% concerning the inclusion of more PDF~pages than actually are existing.
+%
+% The given optional parameters to \cs{includegraphics} are processed and the 
+% counter \cnt{svg at param@currpage} is set to the value of a given \prm{page}. 
+% The value of parameter \prm{width} is ignored.
+%    \begin{macrocode}
+\DefineFamily{SVGpatch}
+\DefineFamilyMember{SVGpatch}
+\newcounter{svg at param@currpage}
+\setcounter{svg at param@currpage}{\m at ne}
+\FamilyCounterKey{SVGpatch}{page}{svg at param@currpage}
+\DefineFamilyKey{SVGpatch}{width}{\FamilyKeyStateProcessed}
+\newcommand*\svg at includegraphics@file{}
+\newcommand*\svg at includegraphics@saved{}
+\newcommand*\svg at includegraphics@patched[2][]{%
+  \FamilyOptions{SVGpatch}{#1}%
+%    \end{macrocode}
+% If option \opt{lastpage} was set to \val{false}, each page is included---even 
+% if it doesn't exist, which may cause errors.
+%    \begin{macrocode}
+  \ifnum\value{svg at param@lastpage}<\z@\relax%
+    \FamilySetCounter{SVGpatch}{page}{svg at param@currpage}{%
+      \the\value{svg at param@lastpage}%
+    }%
+  \fi%
+%    \end{macrocode}
+% Pages are only included, if counter \cnt{svg at param@lastpage} is smaller than 
+% \cnt{svg at param@currpage}, where \cnt{svg at param@lastpage} was either given as 
+% a number with parameter \prm{lastpage} or was automatically calculated with 
+% \cs{svg at get@lastpage}.
+%    \begin{macrocode}
+  \ifnum\value{svg at param@currpage}>\value{svg at param@lastpage}\relax\else%
+%    \end{macrocode}
+% A page is included with the original definition of \cs{includegraphics}. All 
+% optional parameters are passed.
+%    \begin{macrocode}
+    \svg at includegraphics@saved[{#1}]{\svg at includegraphics@file}%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at includegraphics@file
+% \end{macro}^^A \svg at includegraphics@patched
+% \end{macro}^^A \svg at includegraphics@saved
+%
+% \iffalse
+%</body>
+%</package&base>
+%<*package&option>
+% \fi
+%
+%
+%
+% \section{Extracting independent graphic files with package \pkg{svg-extract}}
+% \subsection{Options}
+%
+% For package \pkg{svg-extract} the user interface is extended. The following 
+% options can either be set with \cs{svgsetup} or be used as local optional 
+% parameters for \cs{includesvg} and \cs{includeinkscape}.
+%
+% \begin{macro}{\svg at dummy@key}
+% If package \pkg{svg-extract} wasn't loaded, the following options are defined 
+% for package \pkg{svg} in order to raise a warning message. Primarily this is 
+% done for compatibility reasons.
+%    \begin{macrocode}
+%<*base>
+\DefineFamilyMember[.dummy]{SVG}
+\newcommand*\svg at dummy@key[2][]{%
+  \IfArgIsEmpty{#1}{%
+    \DefineFamilyKey[.dummy]{SVG}{#2}{%
+      \PackageWarning{svg}{%
+        The option key `#2' can only\MessageBreak%
+        be used with package `svg-extract', but\MessageBreak%
+        you didn't load it%
+      }%
+      \FamilyKeyStateProcessed%
+    }%
+  }{%
+    \DefineFamilyKey[.dummy]{SVG}{#2}[{#1}]{%
+      \PackageWarning{svg}{%
+        The option key `#2' can only\MessageBreak%
+        be used with package `svg-extract', but\MessageBreak%
+        you didn't load it%
+      }%
+      \FamilyKeyStateProcessed%
+    }%
+  }%
+%    \end{macrocode}
+% Before package \pkg{svg-extract} the given key |#2| of family member |.dummy| 
+% is relaxed.
+%    \begin{macrocode}
+  \BeforePackage{svg-extract}{\RelaxFamilyKey[.dummy]{SVG}{#2}}%
+}
+%</base>
+%    \end{macrocode}
+% \end{macro}^^A \svg at dummy@key
+%
+%
+%
+% \subsubsection{Controlling the extract process}
+%
+% \begin{option}{extract}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\if at svgx@run}
+% With option \opt{extract} it can be controlled, if the extraction of 
+% independent graphic files should be done.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key[true]{extract}
+%</base>
+%<*extract>
+\newif\if at svgx@run
+\DefineFamilyKey{SVG}{extract}[true]{%
+  \lowercase{\def\svg at tempa{#1}}%
+  \FamilySetNumerical{SVG}{extract}{svg at tempa}{%
+    {false}{0},{off}{0},{no}{0},%
+    {true}{1},{on}{1},{yes}{1},{onlynewer}{1},{newer}{1},%
+    {overwrite}{1},{force}{1},{forced}{1},%
+    {pdf}{2},{eps}{3},{ps}{4}%
+  }{\svg at tempa}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% false
+      \@svgx at runfalse%
+    \or% true
+      \@svgx at runtrue%
+    \or% pdf
+      \FamilyOptions{SVG}{extractformat=pdf}%
+    \or% eps
+      \FamilyOptions{SVG}{extractformat=eps}%
+    \or% ps
+      \FamilyOptions{SVG}{extractformat=ps}%
+    \fi%
+  \fi%
+}
+%</extract>
+%    \end{macrocode}
+% \end{macro}^^A \if at svgx@run
+% \end{option}^^A extract
+% \begin{option}{on}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{option}{off}
+% \changes{v2.00}{2017/02/24}{new}
+% Package options which can be used to switch functionality on or off during 
+% the loading of package \pkg{svg-extract}.
+%    \begin{macrocode}
+%<*extract>
+\DeclareOption{on}{\FamilyOptions{SVG}{extract=true}}
+\DeclareOption{off}{\FamilyOptions{SVG}{extract=false}}
+%</extract>
+%    \end{macrocode}
+% \end{option}^^A off
+% \end{option}^^A on
+% \begin{option}{extractformat}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at format}
+% \begin{option}{pdf}
+% \changes{v2.00}{2017/03/02}{deprecated}
+% \begin{option}{eps}
+% \changes{v2.00}{2017/03/02}{deprecated}
+% Option \opt{extractformat} controls the output format (\val{pdf/eps/ps}). It
+% is set to \val{pdf} or, if dvi output could be detected, to \val{eps} during
+% initialization.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key{extractformat}
+\svg at dummy@key[true]{pdf}
+\svg at dummy@key[true]{eps}
+%</base>
+%<*extract>
+\newcommand*\svgx at format{pdf}
+\ifxetex\else\ifpdf\else
+  \renewcommand*\svgx at format{eps}
+\fi\fi
+\DefineFamilyKey{SVG}{extractformat}{%
+  \lowercase{\edef\svgx at format{#1}}%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{pdf}[true]{%
+  \FamilySetBool{SVG}{pdf}{@svg at tempswa}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \if at svg@tempswa%
+      \svgx at ifinlist{pdf}{\svgx at format}{}{%
+        \edef\svgx at format{\svgx at format,pdf}%
+      }%
+      \svg at deprecated@key{pdf}{extractformat={\svgx at format}}%
+    \else%
+      \FamilyKeyStateUnknownValue
+    \fi%
+  \fi%
+}
+\DefineFamilyKey{SVG}{eps}[true]{%
+  \FamilySetBool{SVG}{eps}{@svg at tempswa}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \if at svg@tempswa%
+      \svgx at ifinlist{eps}{\svgx at format}{}{%
+        \edef\svgx at format{\svgx at format,eps}%
+      }%
+      \svg at deprecated@key{eps}{extractformat={\svgx at format}}%
+    \else%
+      \FamilyKeyStateUnknownValue
+    \fi%
+  \fi%
+}
+%</extract>
+%    \end{macrocode}
+% \end{option}^^A eps
+% \end{option}^^A pdf
+% \end{macro}^^A \svgx at format
+% \end{option}^^A extractformat
+% \begin{option}{extractpreamble}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{option}{preamble}
+% \changes{v2.00}{2017/02/24}{deprecated}
+% \begin{macro}{\svgx at preamble}
+% \begin{option}{extractpreambleend}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{option}{end}
+% \changes{v2.00}{2017/02/24}{deprecated}
+% \begin{macro}{\svgx at endpreamble}
+% For the extraction process, a preamble is necessarry for a separate auxiliary 
+% \LaTeX~file. By default, the preamble of the main document is used, which end
+% is detected at \cs{begin}|{document}|.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key{extractpreamble}
+\svg at dummy@key{preamble}
+\svg at dummy@key{extractpreambleend}
+\svg at dummy@key{end}
+%</base>
+%<*extract>
+\newcommand*\svgx at preamble{\jobname.\svgx at latex@ext}%
+\DefineFamilyKey{SVG}{extractpreamble}{%
+  \renewcommand*\svgx at preamble{#1}%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{preamble}{%
+  \svg at deprecated@key[svg-extract]{preamble=#1}{extractpreamble=#1}%
+}
+\newcommand*\svgx at endpreamble{}
+\expandafter\def\expandafter\svgx at endpreamble\expandafter{%
+  \csname begin\endcsname{document}%
+}
+\DefineFamilyKey{SVG}{extractpreambleend}{%
+  \renewcommand*\svgx at endpreamble{#1}%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{end}{%
+  \svg at deprecated@key[svg-extract]{end=#1}{extractpreambleend=#1}%
+}
+%</extract>
+%    \end{macrocode}
+% \end{macro}^^A \svgx at endpreamble
+% \end{option}^^A end
+% \end{option}^^A extractpreambleend
+% \end{macro}^^A \svgx at preamble
+% \end{option}^^A preamble
+% \end{option}^^A extractpreamble
+% \begin{option}{extractruns}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{counter}{svgx at runs}
+% With this option, the number of \LaTeX~runs for the separate auxiliary file 
+% can be set.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key{extractruns}
+%</base>
+%<*extract>
+\newcounter{svgx at runs}
+\DefineFamilyKey{SVG}{extractruns}{%
+  \FamilySetCounter{SVG}{extractruns}{svgx at runs}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifnum\value{svgx at runs}<\@ne\relax%
+      \PackageWarning{svg-extract}{%
+        The count for runs has to be at least one%
+      }%
+      \FamilySetCounter{SVG}{extractruns}{svgx at runs}{\@ne}%
+    \fi%
+  \fi%
+}
+%</extract>
+%    \end{macrocode}
+% \end{counter}^^A svgx at runs
+% \end{option}^^A extractruns
+% \begin{option}{latexexe}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{option}{pdflatex}
+% \changes{v2.00}{2017/02/24}{deprecated}
+% \begin{macro}{\svgx at latex@exe}
+% \begin{option}{latexext}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at latex@ext}
+% \begin{option}{latexopt}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at latex@opt}
+% The command and facultative options for the \LaTeX~call of the separate 
+% auxiliary file. The default is set according to the currently used compiler.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key{latexexe}
+\svg at dummy@key{pdflatex}
+\svg at dummy@key{latexext}
+\svg at dummy@key{latexopt}
+%</base>
+%<*extract>
+\ifxetex
+  \newcommand*\svgx at latex@exe{xelatex}
+\else\ifluatex
+  \ifpdf
+    \newcommand*\svgx at latex@exe{lualatex}
+  \else
+    \newcommand*\svgx at latex@exe{lualatex --output-format=dvi}
+  \fi
+\else\ifpdf
+  \newcommand*\svgx at latex@exe{pdflatex}
+\else
+  \newcommand*\svgx at latex@exe{latex}
+\fi\fi\fi
+\DefineFamilyKey{SVG}{latexexe}{%
+  \renewcommand*\svgx at latex@exe{#1}%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{pdflatex}{%
+  \svg at deprecated@key[svg-extract]{pdflatex=#1}{latexexe=#1}%
+}
+\newcommand*\svgx at latex@ext{tex}
+\DefineFamilyKey{SVG}{latexext}{%
+  \renewcommand*\svgx at latex@ext{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at latex@opt{}
+\DefineFamilyKey{SVG}{latexopt}{%
+  \renewcommand*\svgx at latex@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+%</extract>
+%    \end{macrocode}
+% \end{macro}^^A \svgx at latex@opt
+% \end{option}^^A latexopt
+% \end{macro}^^A \svgx at latex@ext
+% \end{option}^^A latexext
+% \end{macro}^^A \svgx at latex@exe
+% \end{option}^^A latexexe
+% \end{option}^^A pdflatexexe
+% \begin{option}{dvipsopt}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at dvips@exe}
+% \begin{macro}{\svgx at dvips@opt}
+% \begin{option}{pstoepsopt}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at pstoeps@exe}
+% \begin{macro}{\svgx at pstoeps@opt}
+% \begin{option}{pstopdfopt}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at pstopdf@exe}
+% \begin{macro}{\svgx at pstopdf@opt}
+% \begin{option}{pdftoepsopt}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at pdftoeps@exe}
+% \begin{macro}{\svgx at pdftoeps@opt}
+% \begin{option}{pdftopsopt}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at pdftops@exe}
+% \begin{macro}{\svgx at pdftops@opt}
+% \begin{option}{pdftops}
+% \changes{v2.00}{2017/02/24}{deprecated}
+% Options and macros for calling convert commands, which are supplied by most
+% \LaTeXe~distributions. These are used to generate all files, which are 
+% supported by option \opt{extractformat}, as they don't need an additional
+% application.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key{dvipsopt}
+\svg at dummy@key{pstoepsopt}
+\svg at dummy@key{pstopdfopt}
+\svg at dummy@key{pdftoepsopt}
+\svg at dummy@key{pdftopsopt}
+\svg at dummy@key{pdftops}
+%</base>
+%<*extract>
+\newcommand*\svgx at dvips@exe{dvips}
+\newcommand*\svgx at dvips@opt{}
+\DefineFamilyKey{SVG}{dvipsopt}{%
+  \renewcommand*\svgx at dvips@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at pstoeps@exe{ps2eps}
+\newcommand*\svgx at pstoeps@opt{-B -C}
+\DefineFamilyKey{SVG}{pstoepsopt}{%
+  \renewcommand*\svgx at pstoeps@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at pstopdf@exe{ps2pdf}
+\newcommand*\svgx at pstopdf@opt{}
+\DefineFamilyKey{SVG}{pstopdfopt}{%
+  \renewcommand*\svgx at pstopdf@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at pdftoeps@exe{pdftops -eps}
+\newcommand*\svgx at pdftoeps@opt{}
+\DefineFamilyKey{SVG}{pdftoepsopt}{%
+  \renewcommand*\svgx at pdftoeps@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at pdftops@exe{pdftops}
+\newcommand*\svgx at pdftops@opt{}
+\DefineFamilyKey{SVG}{pdftopsopt}{%
+  \renewcommand*\svgx at pdftops@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{pdftops}{%
+  \PackageWarning{#1}{%
+    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%
+  }%
+  \FamilyKeyStateProcessed
+}
+%</extract>
+%    \end{macrocode}
+% \end{option}^^A pdftops
+% \end{macro}^^A \svgx at pdftops@opt
+% \end{macro}^^A \svgx at pdftops@exe
+% \end{option}^^A pdftopsopt
+% \end{macro}^^A \svgx at pdftoeps@opt
+% \end{macro}^^A \svgx at pdftoeps@exe
+% \end{option}^^A pdftoepsopt
+% \end{macro}^^A \svgx at pstopdf@opt
+% \end{macro}^^A \svgx at pstopdf@exe
+% \end{option}^^A pstopdfopt
+% \end{macro}^^A \svgx at pstoeps@opt
+% \end{macro}^^A \svgx at pstoeps@exe
+% \end{option}^^A pstoepsopt
+% \end{macro}^^A \svgx at dvips@opt
+% \end{macro}^^A \svgx at dvips@exe
+% \end{option}^^A dvipsopt
+%
+%
+%
+% \subsubsection{Invoking external application for graphic conversion}
+%
+% Besides the use of a conversion tool supplied by \LaTeXe, the applications 
+% \app{ImageMagick} and \app{Ghostscript} can be used for converting graphics.
+%
+% \begin{option}{convert}
+% \changes{v2.00}{2017/02/24}{changed/extended}
+% \begin{macro}{\if at svgx@cnv at run}
+% \begin{macro}{\svgx at cnv@cmd}
+% The option \opt{convert} can be used to define, which of both applications 
+% should be use. \app{ImageMagick} is set by default.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key[true]{convert}
+%</base>
+%<*extract>
+\newif\if at svgx@cnv at run
+\newcommand*\svgx at cnv@cmd{}
+\DefineFamilyKey{SVG}{convert}[true]{%
+  \FamilySetNumerical{SVG}{convert}{svg at tempa}{%
+    {false}{0},{off}{0},{no}{0},%
+    {true}{1},{on}{1},{yes}{1},{onlynewer}{1},{newer}{1},%
+    {overwrite}{1},{force}{1},{forced}{1},%
+    {magick}{2},{imagemagick}{2},{convert}{2},%
+    {gs}{3},{ghostscript}{3},%
+    {gs64}{4},{ghostscript64}{4},%
+    {gs32}{5},{ghostscript32}{5}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% false
+      \@svgx at cnv@runfalse%
+    \or% true
+      \@svgx at cnv@runtrue%
+    \or% magick
+      \@svgx at cnv@runtrue%
+      \renewcommand*\svgx at cnv@cmd{\svgx at magick@cmd}%
+    \or% gs
+      \@svgx at cnv@runtrue%
+      \renewcommand*\svgx at cnv@cmd{\svgx at gs@cmd}%
+    \or% gs64
+      \@svgx at cnv@runtrue%
+      \renewcommand*\svgx at cnv@cmd{\svgx at gs@cmd}%
+      \svgx at onlywindows{%
+        \renewcommand*\svgx at gs@exe{gswin64c}%
+      }%
+    \or% gs32
+      \@svgx at cnv@runtrue%
+      \renewcommand*\svgx at cnv@cmd{\svgx at gs@cmd}%
+      \svgx at onlywindows{%
+        \renewcommand*\svgx at gs@exe{gswin32c}%
+      }%
+    \fi%
+%    \end{macrocode}
+% In version~v1.0 the option \opt{convert} was used to set both the executable 
+% and options for the conversion application, meant for the usage of 
+% \app{ImageMagick}. This is taken into account here.
+%    \begin{macrocode}
+  \else%
+%    \end{macrocode}
+% Same doing like with option \opt{inkscape}.
+%    \begin{macrocode}
+    \def\svg at tempa##1-##2\@nil{%
+      \IfArgIsEmpty{##2}{\def\svg at tempb{}}{%
+        \def\svg at tempa##1####1\@nil{\def\svg at tempb{####1}}%
+        \svg at tempa#1\@nil%
+      }%
+      \def\svg at tempa{##1}%
+    }%
+    \svg at tempa#1-\@nil%
+    \PackageWarning{svg-extract}{%
+      Setting the executable%
+      \ifx\svg at tempb\@empty\else%
+        \space and associated options%
+      \fi%
+      \MessageBreak% 
+      for ImageMagick should be done with options\MessageBreak%
+      `magickexe=\svg at tempa'%
+      \ifx\svg at tempb\@empty\else%
+        \MessageBreak and `magicksetting' and/or `magickoperator'%
+      \fi.\MessageBreak% 
+      Nevertheless, this was done by now%
+      \ifx\svg at tempb\@empty\else%
+        , whereby \MessageBreak `magicksetting=\svg at tempb' was used%
+      \fi%
+    }%
+    \FamilyOptions{SVG}{convert=magick}%
+    \edef\svg at tempa{%
+      \noexpand\FamilyOptions{SVG}{magickexe=\svg at tempa}%
+      \ifx\svg at tempb\@empty\else%
+        \noexpand\FamilyOptions{SVG}{magicksetting=\svg at tempb}%
+      \fi%
+    }%
+    \svg at tempa%
+  \fi%
+}
+%</extract>
+%    \end{macrocode}
+% \end{macro}^^A \svgx at cnv@cmd
+% \end{macro}^^A \if at svgx@cnv at run
+% \end{option}^^A convert
+% \begin{option}{convertformat}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at cnv@format}
+% \begin{option}{png}
+% \changes{v2.00}{2017/03/02}{deprecated}
+% Option \opt{convertformat} controls the output format for converted files. It
+% is set to \val{png} by default.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key{convertformat}
+\svg at dummy@key[true]{png}
+%</base>
+%<*extract>
+\newcommand*\svgx at cnv@format{png}
+\DefineFamilyKey{SVG}{convertformat}{%
+  \lowercase{\edef\svgx at cnv@format{#1}}%
+  \ifx\svgx at cnv@format\@empty\else%
+    \@svgx at cnv@runtrue%
+  \fi%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{png}[true]{%
+  \FamilySetBool{SVG}{png}{@svg at tempswa}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \if at svg@tempswa%
+      \svgx at ifinlist{png}{\svgx at cnv@format}{}{%
+        \edef\svgx at cnv@format{\svgx at cnv@format,png}%
+      }%
+      \svg at deprecated@key{png}{convertformat={\svgx at cnv@format}}%
+    \else%
+      \FamilyKeyStateUnknownValue
+    \fi%
+  \fi%
+}
+%</extract>
+%    \end{macrocode}
+% \end{option}^^A png
+% \end{macro}^^A \svgx at cnv@format
+% \end{option}^^A convertformat
+% \begin{option}{convertdpi}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{option}{convertdensity}
+% \begin{macro}{\svgx at cnv@dpi}
+% The option \opt{convertdpi} is meant to define the used density during the 
+% conversion process. It can be set either for all designated output formats or 
+% targeted for a specific format. It's also possible to use something like 
+% \val{500x300}. Given values are resolved by \cs{svgx at cnv@get at dpi}. It's used 
+% like \opt{convertdpi}|=|\val{300} or \opt{convertdpi}|=|\val{\{png=600\}} If 
+% the option is used for a specific or for all output formats is recocnized by 
+% \cs{svgx at ifkeyandval}.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key{convertdpi}
+\svg at dummy@key{convertdensity}
+%</base>
+%<*extract>
+\newcommand*\svgx at cnv@dpi{}
+\let\svgx at cnv@dpi\relax
+\DefineFamilyKey{SVG}{convertdpi}{%
+  \FamilyKeyStateUnknownValue%
+  \svgx at ifkeyandval{#1}{%
+    \svgx at cnv@get at dpi{##2}%
+    \ifx\svg at tempa\relax\else%
+      \expandafter\edef\csname svgx at cnv@dpi@##1\endcsname{\svg at tempa}%
+      \FamilyKeyStateProcessed%
+    \fi%
+  }{%
+    \svgx at cnv@get at dpi{##1}%
+    \ifx\svg at tempa\relax\else%
+      \edef\svgx at cnv@dpi{\svg at tempa}%
+      \FamilyKeyStateProcessed%
+    \fi%
+  }%
+}
+\DefineFamilyKey{SVG}{convertdensity}{\FamilyOptions{SVG}{convertdpi=#1}}
+%</extract>
+%    \end{macrocode}
+% \end{macro}^^A \svgx at cnv@dpi
+% \end{option}^^A convertdensity
+% \end{option}^^A convertdpi
+% \begin{option}{magickexe}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at magick@exe}
+% \begin{option}{magicksetting}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at magick@set}
+% \begin{option}{magickoperator}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at magick@opr}
+% Setting the command including maybe the path to \app{ImageMagick}. The keys
+% \opt{magicksetting} and \opt{magickoperator} should be used to add optional
+% arguments before (\emph{Settings}) or after (\emph{Operators}) the input
+% file. They can either be set for all or a specific output format as like
+% option \opt{convertdpi}. For this \cs{svgx at setformatkey} is used.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key{magickexe}
+\svg at dummy@key{magicksetting}
+\svg at dummy@key{magickoperator}
+%</base>
+%<*extract>
+\newcommand*\svgx at magick@exe{}
+\DefineFamilyKey{SVG}{magickexe}{%
+  \renewcommand*\svgx at magick@exe{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at magick@set{}
+\DefineFamilyKey{SVG}{magicksetting}{%
+  \svgx at setformatkey{#1}{svgx at magick@set}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at magick@opr{}
+\DefineFamilyKey{SVG}{magickoperator}{%
+  \svgx at setformatkey{#1}{svgx at magick@opr}%
+  \FamilyKeyStateProcessed%
+}
+%</extract>
+%    \end{macrocode}
+% \end{macro}^^A \svgx at magick@opr
+% \end{option}^^A magickoperator
+% \end{macro}^^A \svgx at magick@set
+% \end{option}^^A magicksetting
+% \end{macro}^^A \svgx at magick@exe
+% \end{option}^^A magickexe
+% \begin{option}{gsexe}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at gs@exe}
+% \begin{option}{gsopt}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at gs@opt}
+% \begin{option}{gsdevice}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svgx at gs@device}
+% Options to set the command including maybe the path to \app{Ghostscript}. As 
+% \app{Ghostscript} needs a specific device defined for different output
+% formats, the option \opt{gsdevice} can be used. It can either be set for all 
+% or a specific output format just like \opt{gsopt} in the same manner like 
+% option \opt{convertdpi}. 
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key{gsexe}
+\svg at dummy@key{gsopt}
+\svg at dummy@key{gsdevice}
+%</base>
+%<*extract>
+\newcommand*\svgx at gs@exe{}
+\DefineFamilyKey{SVG}{gsexe}{%
+  \renewcommand*\svgx at gs@exe{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at gs@opt{}
+\DefineFamilyKey{SVG}{gsopt}{%
+  \svgx at setformatkey{#1}{svgx at gs@opt}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at gs@device{}
+\DefineFamilyKey{SVG}{gsdevice}{%
+  \svgx at setformatkey{#1}{svgx at gs@device}%
+  \FamilyKeyStateProcessed%
+}
+%</extract>
+%    \end{macrocode}
+% \end{macro}^^A \svgx at gs@device
+% \end{option}^^A gsdevice
+% \end{macro}^^A \svgx at gs@opt
+% \end{option}^^A gsopt
+% \end{macro}^^A \svgx at gs@exe
+% \end{option}^^A gsexe
+%
+%
+%
+% \subsubsection{Setting output folder}
+%
+% \begin{option}{extractpath}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{option}{path}
+% \changes{v2.00}{2017/02/24}{deprecated}
+% \begin{option}{extractname}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{option}{name}
+% \changes{v2.00}{2017/02/24}{deprecated}
+% \changes{v2.00}{2017/02/24}{support of \pkg{subfig} removed}
+% \begin{macro}{\svgx at out@path}
+% \begin{macro}{\svgx at out@name}
+% \begin{macro}{\if at svgx@out at sec}
+% \begin{counter}{svgx at out@count}
+% The option \opt{extractpath} controls, in which folder the results both of 
+% the extraction as well as the conversion of \app{ImageMagick} or 
+% \app{Ghostscript} will be located. With option \opt{extractname} the 
+% name of the extracted and maybe converted file itself can be changed.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key{extractpath}
+\svg at dummy@key{path}
+\svg at dummy@key{extractname}
+\svg at dummy@key{name}
+%</base>
+%<*extract>
+\newcommand*\svgx at out@path{}
+\DefineFamilyKey{SVG}{extractpath}{%
+  \FamilySetNumerical{SVG}{extractpath}{svg at tempa}{%
+    {svgpath}{0},{svgdir}{0},%
+    {svgsubpath}{1},{svgsubdir}{1},%
+    {basepath}{2},{basedir}{2},{jobpath}{2},{jobdir}{2},%
+    {basesubpath}{3},{basesubdir}{3},{jobsubpath}{3},{jobsubdir}{3}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% svgpath
+      \renewcommand*\svgx at out@path{\svg at file@path}%
+    \or% svgsubpath
+      \renewcommand*\svgx at out@path{\svg at file@path svg-extract/}%
+    \or% basepath
+      \renewcommand*\svgx at out@path{./}%
+    \or% basesubpath
+      \renewcommand*\svgx at out@path{./svg-extract/}%
+    \fi%
+  \else%
+    \renewcommand*\svgx at out@path{#1}%
+    \svg at normalize@path{\svgx at out@path}%
+    \FamilyKeyStateProcessed%
+  \fi%
+}
+\DefineFamilyKey{SVG}{path}{%
+  \svg at deprecated@key[svg-extract]{path=#1}{extractpath=#1}%
+}
+\newcounter{svgx at out@count}
+\newcommand*\svgx at out@name{}
+\newif\if at svgx@out at sec
+\DefineFamilyKey{SVG}{extractname}{%
+  \FamilySetNumerical{SVG}{extractname}{svg at tempa}{%
+    {filename}{0},{name}{0},%
+    {filenamenumbered}{1},{namenumbered}{1},%
+    {numberedfilename}{1},{numberedname}{1},%
+    {numbered}{2},{section}{2},{numberedsection}{2},{sectionnumbered}{2}%
+  }{#1}%
+  \@svgx at out@secfalse%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% filename
+      \renewcommand*\svgx at out@name{\svg at out@name-extract}%
+    \or% filenamenumbered
+      \renewcommand*\svgx at out@name{\the\value{svgx at out@count}-\svg at out@name}%
+    \or% numbered
+      \renewcommand*\svgx at out@name{\the\value{svgx at out@count}-\svgx at out@sec}%
+      \@svgx at out@sectrue%
+    \fi%
+  \else%
+    \def\svg at tempa##1.##2\@nil{%
+      \IfArgIsEmpty{##1}{}{\renewcommand*\svgx at out@name{##1}}%
+    }%
+    \svg at tempa#1.\@nil%
+    \FamilyKeyStateProcessed%
+  \fi%
+}
+\DefineFamilyKey{SVG}{name}{%
+  \svg at deprecated@key[svg-extract]{name=#1}{extractname=#1}%
+}
+%</extract>
+%    \end{macrocode}
+% \end{counter}^^A svgx at out@count
+% \end{macro}^^A \if at svgx@out at sec
+% \end{macro}^^A \svgx at out@name
+% \end{macro}^^A \svgx at out@path
+% \end{option}^^A name
+% \end{option}^^A extractname
+% \end{option}^^A path
+% \end{option}^^A extractpath
+%
+%
+%
+% \subsubsection{Options for the extraction of graphics}
+%
+% \begin{option}{extractwidth}
+% \changes{v2.00}{2017/02/20}{new}
+% \begin{macro}{\svgx at param@width}
+% \begin{option}{extractheight}
+% \changes{v2.00}{2017/02/20}{new}
+% \begin{macro}{\svgx at param@width}
+% \begin{option}{extractscale}
+% \changes{v2.00}{2017/02/20}{new}
+% \begin{macro}{\svgx at param@scale}
+% For graphic extraction, the given settings regarding the size for inclusion 
+% can be overwritten with these options. Using \val{\cs{relax}} as value leads 
+% to reseting an option as unset, regardless of what was previously given. The
+% value \val{inherit} means, that the actual option for including is used for
+% extraction as well. This is the default setting.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key{extractwidth}
+\svg at dummy@key{extractheight}
+\svg at dummy@key{extractscale}
+%</base>
+%<*extract>
+\newcommand*\svgx at param@width{\svg at param@width}
+\DefineFamilyKey{SVG}{extractwidth}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \renewcommand*\svgx at param@width{\z@}%
+    \FamilyKeyStateProcessed%
+  }{%
+    \ifstr{#1}{inherit}{%
+      \renewcommand*\svgx at param@width{\svg at param@width}%
+      \FamilyKeyStateProcessed%
+    }{%
+      \FamilySetLengthMacro{SVG}{extractwidth}{\svgx at param@width}{#1}%
+      \ifdim\svgx at param@width<\z@\relax%
+        \FamilyKeyStateUnknownValue%
+      \fi%
+    }%
+  }%
+}
+\newcommand*\svgx at param@height{\svg at param@height}
+\DefineFamilyKey{SVG}{extractheight}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \renewcommand*\svgx at param@height{\z@}%
+    \FamilyKeyStateProcessed%
+  }{%
+    \ifstr{#1}{inherit}{%
+      \renewcommand*\svgx at param@height{\svg at param@height}%
+      \FamilyKeyStateProcessed%
+    }{%
+      \FamilySetLengthMacro{SVG}{extractheight}{\svgx at param@height}{#1}%
+      \ifdim\svgx at param@height<\z@\relax%
+        \FamilyKeyStateUnknownValue%
+      \fi%
+    }%
+  }%
+}
+\newcommand*\svgx at param@scale{\svg at param@scale}
+\DefineFamilyKey{SVG}{extractscale}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \renewcommand*\svgx at param@scale{1}%
+    \FamilyKeyStateProcessed%
+  }{%
+    \ifstr{#1}{inherit}{%
+      \renewcommand*\svgx at param@scale{\svg at param@scale}%
+      \FamilyKeyStateProcessed%
+    }{%
+      \ifisdimension{#1\p@}{%
+        \ifdim\dimexpr#1\p@\relax>\z@\relax%
+          \renewcommand*\svgx at param@scale{#1}%
+          \FamilyKeyStateProcessed%
+        \fi%
+      }{}%
+    }%
+  }%
+}
+%</extract>
+%    \end{macrocode}
+% \end{macro}^^A \svgx at param@scale
+% \end{option}^^A extractscale
+% \end{macro}^^A \svgx at param@height
+% \end{option}^^A extractheight
+% \end{macro}^^A \svgx at param@width
+% \end{option}^^A extractwidth
+% \begin{option}{extractpretex}
+% \changes{v2.00}{2017/02/20}{new}
+% \begin{macro}{\svgx at param@pretex}
+% \begin{option}{extractapptex}
+% \changes{v2.00}{2017/02/20}{new}
+% \begin{macro}{\svgx at param@apptex}
+% \begin{option}{extractpostex}
+% The similar hooks for executing code right before or after the graphic 
+% extraction.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key{extractpretex}
+\svg at dummy@key{extractapptex}
+\svg at dummy@key{extractpostex}
+%</base>
+%<*extract>
+\newcommand*\svgx at param@pretex{\svg at param@pretex}
+\DefineFamilyKey{SVG}{extractpretex}{%
+  \svg at ifvalueisrelax{#1}{%
+    \let\svgx at param@pretex\relax%
+  }{%
+    \ifstr{#1}{inherit}{%
+      \def\svgx at param@pretex{\svg at param@pretex}%
+    }{%
+      \def\svgx at param@pretex{#1}%
+    }%
+  }%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at param@apptex{\svg at param@apptex}
+\DefineFamilyKey{SVG}{extractapptex}{%
+  \svg at ifvalueisrelax{#1}{%
+    \let\svgx at param@apptex\relax%
+  }{%
+    \ifstr{#1}{inherit}{%
+      \def\svgx at param@apptex{\svg at param@apptex}%
+    }{%
+      \def\svgx at param@apptex{#1}%
+    }%
+  }%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{extractpostex}{%
+  \svg at deprecated@key[svg-extract]{extractpostex=#1}{extractapptex=#1}%
+}
+%</extract>
+%    \end{macrocode}
+% \end{option}^^A extractpostex
+% \end{macro}^^A \svgx at param@apptex
+% \end{option}^^A extractapptex
+% \end{macro}^^A \svgx at param@pretex
+% \end{option}^^A extractpretex
+%
+%
+%
+% \subsubsection{Miscellaneous options}
+%
+% \begin{option}{clean}
+% \changes{v2.00}{2017/02/24}{changes, file list possible}
+% \begin{option}{clear}
+% \begin{macro}{\svgx at clean}
+% With option \opt{clean} files generated during the extraction process can be 
+% deleted. Setting \val{true} will remove all files, \val{false} won't clear 
+% any file. Additionally, a specific file list of suffixes can be given.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key[true]{clean}
+\svg at dummy@key[true]{clear}
+%</base>
+%<*extract>
+\newcommand*\svgx at clean{}
+\DefineFamilyKey{SVG}{clean}[true]{%
+  \FamilySetBool{SVG}{clean}{@svg at tempswa}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \if at svg@tempswa%
+      \renewcommand*\svgx at clean{log,aux,dvi,out,ps,eps,pdf,\svgx at latex@ext}%
+    \else%
+      \renewcommand*\svgx at clean{}%
+    \fi%
+  \else%
+    \renewcommand*\svgx at clean{#1}%
+    \FamilyKeyStateProcessed%
+  \fi%
+}
+\DefineFamilyKey{SVG}{clear}{\FamilyOptions{SVG}{clean=#1}}
+%</extract>
+%    \end{macrocode}
+% \end{macro}^^A \svgx at clean
+% \end{option}^^A clear
+% \end{option}^^A clean
+% \begin{option}{exclude}
+% If it is desired not to include but only extract graphics with package 
+% \pkg{svg-extract}, option \opt{exclude} can be used.
+%    \begin{macrocode}
+%<*base>
+\svg at dummy@key[true]{exclude}
+%</base>
+%<*extract>
+\DefineFamilyKey{SVG}{exclude}[true]{%
+  \FamilySetBool{SVG}{exclude}{@svg at tempswa}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \if at svg@tempswa%
+      \renewcommand*\svg at input[2][]{%
+        \if at svgx@run\else%
+          \PackageWarning{svg-extract}{%
+            The image `##2' was\MessageBreak%
+            neither extracted nor included%
+          }%
+        \fi%
+      }%
+    \else%
+      \renewcommand*\svg at input{\svg@@input}%
+    \fi%
+  \fi%
+}
+%</extract>
+%    \end{macrocode}
+% \end{option}^^A exclude
+%
+% \iffalse
+%</package&option>
+%<*package&body>
+% \fi
+%
+%
+%
+% \subsection{User commands}
+%
+% \begin{macro}{\svghidepreamblestart}
+% \changes{v2.00}{2017/02/24}{new}
+% \begin{macro}{\svghidepreambleend}
+% \changes{v2.00}{2017/02/24}{new}
+% Some dummys for package \pkg{svg}.
+%    \begin{macrocode}
+%<*base>
+\newcommand*\svghidepreamblestart{%
+  \PackageWarning{svg}{%
+    The macro `\string\svghidepreamblestart' is only meant\MessageBreak%
+    to be used together with package `svg-extract'.\MessageBreak%
+    Nevertheless, nothing will happen%
+  }%
+}
+\newcommand*\svghidepreambleend{%
+  \PackageWarning{svg}{%
+    The macro `\string\svghidepreambleend' is only meant\MessageBreak%
+    to be used together with package `svg-extract'.\MessageBreak%
+    Nevertheless, nothing will happen%
+  }%
+}
+%</base>
+%    \end{macrocode}
+% These two macros can be used to hide some parts of the preamble during 
+% reading the preamble of the main document.
+%    \begin{macrocode}
+%<*extract>
+\let\svghidepreamblestart\relax
+\let\svghidepreambleend\relax
+%</extract>
+%    \end{macrocode}
+% \end{macro}^^A \svghidepreambleend
+% \end{macro}^^A \svghidepreamblestart
+%
+%
+%
+% \subsection{Auxiliary macros}
+%
+% \begin{macro}{\svg at extract}
+% \begin{macro}{\svgx at stream@in}
+% \begin{macro}{\svgx at read@line}
+% \begin{macro}{\svgx at stream@out}
+% \begin{macro}{\if at svgx@preamble at write}
+% The macro \cs{svg at extract} does the actual job of both extracting and 
+% converting independent graphic files. Since it is necessary to run it with 
+% \file{-{}-shell-escape} enabled, the command raises a warning if it is not 
+% activated. Afterwards, the package is finished.
+%    \begin{macrocode}
+%<*base>
+\newcommand*\svg at extract[1]{}
+%</base>
+%<*extract>
+\ifnum\pdf at shellescape=\@ne\relax\else%
+  \renewcommand*\svg at extract[1]{%
+    \if at svgx@run%
+      \begingroup%
+        \edef\svg at tempa{#1}%
+        \svg at quotes@remove{\svg at tempa}%
+        \PackageWarning{svg-extract}{%
+          You didn't enable `shell escape' (or `write18')\MessageBreak%
+          so it wasn't possible to run the extraction for\MessageBreak%
+          file `\svg at tempa'%
+        }%
+      \endgroup%
+    \fi%
+  }%
+  \expandafter\endinput%
+\fi
+%    \end{macrocode}
+% If \file{-{}-shell-escape} is enabled, the command is defined with its
+% intended functionality. Some macros and a input stream as well as a output
+% stream are necessary for this.
+%    \begin{macrocode}
+\newread\svgx at stream@in
+\newcommand*\svgx at read@line{}
+\newwrite\svgx at stream@out
+\newif\if at svgx@preamble at write
+\renewcommand*\svg at extract[1]{%
+%    \end{macrocode}
+% If option \opt{extract} is enabled\dots
+%    \begin{macrocode}
+  \if at svgx@run%
+%    \end{macrocode}
+% \dots the macro \cs{svgx at get@out at sec} is used to get the current level 
+% numbering within the document and the counter for extracted graphics is
+% stepped. After that, a separate auxiliary \LaTeX~file is created for
+% extracting independent graphic files. The macro \cs{svgx at get@out at sec} is used
+% to get the current level numbering within the document. The specified
+% preamble is read for this task, if it exists. It is first searched in the
+% same folder as the SVG~file and if it wasn't found, in any other valid folder
+% for SVG~files.
+%    \begin{macrocode}
+    \if at svgx@out at sec%
+      \svgx at get@out at sec%
+    \fi%
+    \stepcounter{svgx at out@count}%
+    \begingroup%
+      \def\svg at tempa##1.##2\@nil{%
+        \IfArgIsEmpty{##2}{\edef\svgx at preamble{##1.\svgx at latex@ext}}{}%
+      }%
+      \expandafter\svg at tempa\svgx at preamble.\@nil%
+      \IfFileExists{\svg at file@path\svgx at preamble}{%
+        \@svg at file@foundtrue%
+      }{%
+        \svg at get@path[]{\svgx at preamble}{\svg at out@path}%
+        \def\svg at tempa####1.####2\@nil{%
+          \edef\svgx at preamble{\svg at file@name.####2}%
+        }%
+        \expandafter\svg at tempa\svgx at preamble\@nil%
+      }%
+      \edef\svg at tempa{%
+        \endgroup%
+        \if at svg@file at found%
+          \ifx\svg at file@path\@empty%
+            \def\noexpand\svgx at preamble{./\svgx at preamble}%
+          \else%
+            \def\noexpand\svgx at preamble{\svg at file@path\svgx at preamble}%
+          \fi%
+        \fi%
+      }%
+    \svg at tempa%
+    \begingroup%
+      \endlinechar=\m at ne%
+      \IfFileExists{\svgx at preamble}{%
+        \PackageInfo{svg-extract}{%
+          The preamble file `\svgx at preamble'\MessageBreak%
+          is used for the generation of the auxiliary file\MessageBreak% 
+          `\svgx at out@name.\svgx at latex@ext'%
+        }%
+%    \end{macrocode}
+% The catcodes for |#| need to be changed to prevent doublification when
+% reading the line.
+%    \begin{macrocode}
+        \catcode`\#=12\relax%
+        \immediate\openout\svgx at stream@out=\svgx at out@name.\svgx at latex@ext%
+        \immediate\openin\svgx at stream@in=\svgx at preamble%
+        \@svg at tempswatrue%
+        \@svgx at preamble@writetrue%
+        \def\svgx at read@line{}%
+%    \end{macrocode}
+% The given preamble file is read line by line and written to the separate 
+% auxiliary \LaTeX~file \file{\cs{svgx at out@name}.\cs{svgx at latex@ext}} via the
+% output stream.
+%    \begin{macrocode}
+        \@whilesw\if at svg@tempswa\fi{%
+          \immediate\read\svgx at stream@in to\svgx at read@line%
+          \ifx\svgx at read@line\@empty%
+            \ifeof\svgx at stream@in\@svg at tempswafalse\fi%
+          \else%
+%    \end{macrocode}
+% With \cs{svghidepreamblestart} and \cs{svghidepreambleend} it is possible for 
+% the user to omit certain parts of the preamble. Therefor the two macros
+% \cs{svgx at read@preamble at till} and \cs{svgx at read@preamble at from} are toggling
+% the switch \cs{if at svgx@preamble at write}
+%    \begin{macrocode}
+            \svgx at read@preamble at till{\svghidepreamblestart}{}%
+            \svgx at read@preamble at from{\svghidepreambleend}{}%
+%    \end{macrocode}
+% If the desired end of the preamble (\cs{svgx at endpreamble}) was found, the 
+% readout is terminated by switching \cs{if at svg@tempswa} to \val{false}.
+%    \begin{macrocode}
+            \svgx at read@preamble at till{\svgx at endpreamble}{\@svg at tempswafalse}%
+            \if at svgx@preamble at write%
+%    \end{macrocode}
+% During the readout process, it is searched with \cs{svgx at documentclass} for 
+% the appearance of \cs{documentclass} and \cs{if at svgx@classfound} is set to 
+% \val{true} if it was found.
+%    \begin{macrocode}
+              \if at svgx@classfound\else%
+                \expandafter\svgx at documentclass%
+                  \svgx at read@line\documentclass\documentclass\@nil%
+              \fi%
+%    \end{macrocode}
+% Writing out the---maybe manipulated---read in line.
+%    \begin{macrocode}
+              \ifx\svgx at read@line\@empty\else%
+                \immediate\write\svgx at stream@out{%
+                  \unexpanded\expandafter{\svgx at read@line}%
+                }%
+              \fi%
+            \fi%
+          \fi%
+        }%
+        \immediate\closein\svgx at stream@in%
+        \immediate\closeout\svgx at stream@out%
+        \catcode`\#=6\relax%
+%    \end{macrocode}
+% Once the separate auxiliary \LaTeX~file is written, it is read in again and 
+% its content is stored in \cs{svg at tempa}, since it is necessary to prepend
+% some stuff to the preamble, for example a maybe not existent document class.
+%    \begin{macrocode}
+        \immediate\openin\svgx at stream@in=\svgx at out@name.\svgx at latex@ext%
+        \def\svg at tempa{}%
+        \loop\unless\ifeof\svgx at stream@in%
+          \readline\svgx at stream@in to\svgx at read@line%
+          \ifx\svgx at read@line\@empty\else%
+            \edef\svg at tempa{%
+              \unexpanded\expandafter{\svg at tempa}%
+              \unexpanded\expandafter{\svgx at read@line}^^J%
+            }%
+          \fi%
+        \repeat%
+        \immediate\closein\svgx at stream@in%
+      }{%
+%    \end{macrocode}
+% If a file was given that doesn't exist, a warning is issued.
+%    \begin{macrocode}
+        \svg at quotes@remove{\svgx at preamble}%
+        \ifx\svgx at preamble\@empty\else%
+          \PackageWarning{svg-extract}{%
+            The preamble file `\svgx at preamble'\MessageBreak%
+            does not exist%
+          }%
+        \fi%
+        \def\svg at tempa{}%
+      }%
+%    \end{macrocode}
+% After the preamble was read in and stored in \cs{svg at tempa}, the separate 
+% auxiliary \LaTeX~file is written again. Some information are written right at
+% the beginning of the file.
+%    \begin{macrocode}
+      \immediate\openout\svgx at stream@out=\svgx at out@name.\svgx at latex@ext%
+      \immediate\write\svgx at stream@out{%
+        \@percentchar\@percentchar\space This file was generated by package 
+        `svg-extract'^^J%
+        \@percentchar\@percentchar\space from source `\jobname'^^J%
+        \@percentchar\@percentchar\space It's intended to be compiled with 
+        `\svgx at latex@exe\ifx\svgx at latex@opt\@empty\else\space\svgx at latex@opt\fi'
+      }%
+%    \end{macrocode}
+% With the intention of passing the correct paper dimensions, the calculating 
+% of the paper size is executed with \cs{AtBeginDocument} even before the
+% document class, so that this is definitely the first thing to happen at the
+% beginning of the document. Additionally, it is ensured that the \cs{special} 
+% command is definitely used with the correct paper size, when creating a 
+% DVI~file.
+%    \begin{macrocode}
+      \immediate\write\svgx at stream@out{%
+        \string\AtBeginDocument{\@percentchar^^J%
+          \space\space\string\svgxsetpapersize\@percentchar^^J%
+          \ifxetex\else\ifpdf\else%
+            \space\space\string\AtBeginDvi{\string\special{%
+                papersize=\string\the\string\paperwidth,%
+                  \string\the\string\paperheight%
+            }}\@percentchar^^J%
+          \fi\fi%
+        }^^J%
+        \string\PassOptionsToPackage{hidelinks}{hyperref}%
+      }%
+%    \end{macrocode}
+% If no document class was found during reading the preamble file, then class 
+% \cs{article} is used.
+%    \begin{macrocode}
+      \if at svgx@classfound\else%
+        \immediate\write\svgx at stream@out{\string\documentclass{article}}%
+      \fi%
+%    \end{macrocode}
+% And now the stored preamble.
+%    \begin{macrocode}
+      \ifx\svg at tempa\@empty\else%
+        \immediate\write\svgx at stream@out{\unexpanded\expandafter{\svg at tempa}}%
+      \fi%
+%    \end{macrocode}
+% After the given preamble was written, package \pkg{svg-extract} will be 
+% loaded in case it was forgotten.
+%    \begin{macrocode}
+      \immediate\write\svgx at stream@out{\string\usepackage{svg-extract}}%
+%    \end{macrocode}
+% Now all parameters relevant for the extraction are evaluated and appended.
+%    \begin{macrocode}
+      \def\svg at tempa##1{%
+        \immediate\write\svgx at stream@out{\string\svgsetup{##1}}%
+      }%
+      \if at svg@ink at latex\else%
+        \svg at tempa{inkscapelatex=false}%
+      \fi%
+      \ifdim\svgx at param@width>\z@\relax%
+        \svg at tempa{width=\svgx at param@width}%
+      \fi%
+      \ifdim\svgx at param@height>\z@\relax%
+        \svg at tempa{height=\svgx at param@height}%
+      \fi%
+      \ifdim\dimexpr\svgx at param@scale\p@\relax=\p@\relax\else%
+        \svg at tempa{scale=\svgx at param@scale}%
+      \fi%
+      \def\svg at tempb{\svg at param@pretex}%
+      \ifx\svgx at param@pretex\svg at tempb\relax%
+        \let\svgx at param@pretex\svg at param@pretex%
+      \fi%
+      \ifx\svgx at param@pretex\relax\else%
+        \svg at tempa{pretex=\unexpanded\expandafter{\svgx at param@pretex}}%
+      \fi%
+      \def\svg at tempb{\svg at param@apptex}%
+      \ifx\svgx at param@apptex\svg at tempb\relax%
+        \let\svgx at param@apptex\svg at param@apptex%
+      \fi%
+      \ifx\svgx at param@apptex\relax\else%
+        \svg at tempa{apptex=\unexpanded\expandafter{\svgx at param@apptex}}%
+      \fi%
+%    \end{macrocode}
+% Parameter \prm{lastpage} is only considered for including PDF~files with 
+% \LaTeX~support.
+%    \begin{macrocode}
+      \let\svg at tempa\@empty%
+      \if at svg@ink at latex%
+        \ifstr{\svg at ink@format}{pdf}{%
+          \ifnum\value{svg at param@lastpage}>\z@\relax%
+            \edef\svg at tempa{lastpage=\the\value{svg at param@lastpage}}%
+          \else%
+            \ifnum\value{svg at param@lastpage}=\z@\relax%
+              \def\svg at tempa{lastpage=true}%
+            \else%
+              \def\svg at tempa{lastpage=false}%
+            \fi%
+          \fi%
+        }{}%
+      \fi%
+%    \end{macrocode}
+% As we are now at the end of the preamble and just before the beginning of the 
+% document, the paper dimension are set again to make sure, that these settings 
+% are active at the end of the preamble. Additionally, it is executed again at 
+% the very end of \cs{AtBeginDocument} to ensure, that no other package used 
+% this hook for manipulating the paper size.
+%    \begin{macrocode}
+      \ifx\svg at tempa\@empty%
+        \def\svg at tempa{\string\svgxsetbox{#1}}%
+      \else%
+        \edef\svg at tempa{\noexpand\string\noexpand\svgxsetbox[\svg at tempa]{#1}}%
+      \fi%
+      \immediate\write\svgx at stream@out{\svg at tempa}%
+%    \end{macrocode}
+% Package \pkg{xr} is used to evaluate possible labels within the included
+% \app{Inkscape}~\LaTeX~file.
+%    \begin{macrocode}
+      \if at svg@ink at latex%
+        \IfFileExists{xr.sty}{%
+          \immediate\write\svgx at stream@out{%
+            \string\usepackage{xr}^^J%
+            \string\externaldocument{\jobname}^^J%
+          }%
+        }{}%
+      \fi%
+      \immediate\write\svgx at stream@out{%
+        \string\AtBeginDocument{\@percentchar^^J%
+          \space\space\svg at tempa\@percentchar^^J%
+        }^^J^^J%
+        \string\begin{document}^^J%
+        \string\pagestyle{empty}^^J%
+        \string\svgxoutputbox\@percentchar^^J%
+        \string\end{document}%
+      }%
+      \immediate\closeout\svgx at stream@out%
+    \endgroup%
+%    \end{macrocode}
+% After creating the separate auxiliary \LaTeX~file, the actual extraction and 
+% conversion can be done.
+%    \begin{macrocode}
+    \ifstr{\svgx at format\svgx at cnv@format}{}{%
+      \PackageWarning{svg-extract}{%
+        Both keys `extractformat' and `convertformat' are\MessageBreak%
+        empty, so nothing to do so far%
+      }%
+    }{%
+%    \end{macrocode}
+% As the extraction maybe needs to include the main~auxiliary~file with 
+% \cs{externaldocument} provided by package \pkg{xr} it is necessarry to do all 
+% related stuff after the main~auxiliary~file was written. This is done with
+% \cs{AfterReadingMainAux} provided by package \pkg{scrlfile}.
+%    \begin{macrocode}
+      \svg at quotes@remove{\svgx at out@path}%
+      \svg at quotes@remove{\svgx at out@name}%
+%    \end{macrocode}
+% All generated files will be moved to the desired output folder, which is 
+% given by option \opt{extractpath}. Therefor, this folder is created.
+%    \begin{macrocode}
+      \edef\svg at tempb{%
+        \noexpand\svg at shell@mkdir{\svgx at out@path}%
+      }%
+      \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+%    \end{macrocode}
+% First of all the separate auxiliary \LaTeX~file is compiled with the detected 
+% \LaTeX~processor (\cs{svgx at latex@exe}) as often as defined by counter option 
+% \opt{extractruns}.
+%    \begin{macrocode}
+      \edef\svg at tempb{%
+        \noexpand\PackageInfo{svg-extract}{%
+          Running LaTeX (\svgx at latex@exe) for graphic extraction%
+          \ifx\svgx at latex@opt\@empty\else%
+            \MessageBreak with added options `\svgx at latex@opt'%
+          \fi%
+        }%
+      }%
+      \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+      \edef\svg at tempb{%
+        \noexpand\ShellEscape{%
+          \svgx at latex@exe\space\svgx at latex@opt\space%
+          "\svgx at out@name.\svgx at latex@ext"%
+        }%
+      }%
+      \loop\ifnum\value{svgx at runs}>\z@\relax%
+        \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+        \advance\c at svgx@runs\m at ne%
+      \repeat%
+%    \end{macrocode}
+% All files requested with option \opt{extractformat} are created with internal 
+% conversion tools supplied by most \LaTeXe~distributions if necessarry.
+%    \begin{macrocode}
+      \def\svg at tempa##1##2##3{%
+        \edef\svg at tempb{%
+          \noexpand\ShellEscape{%
+            \@nameuse{svgx@##1 at exe}\space\@nameuse{svgx@##1 at opt}\space%
+            "\svgx at out@name.##2"%
+          }%
+        }%
+        \AfterReadingMainAux{\PackageInfo{svg-extract}{Running ##1}}%
+        \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+      }%
+      \@svg at tempswafalse%
+      \ifxetex\else\ifpdf\else%
+        \@svg at tempswatrue%
+      \fi\fi%
+      \if at svg@tempswa%
+        \svg at tempa{dvips}{dvi}{ps}%
+        \svgx at ifinlist{eps}{\svgx at format}{\svg at tempa{pstoeps}{ps}{eps}}{}%
+        \svgx at ifinlist{pdf}{\svgx at format}{\svg at tempa{pstopdf}{ps}{pdf}}{}%
+      \else%
+        \svgx at ifinlist{eps}{\svgx at format}{\svg at tempa{pdftoeps}{pdf}{eps}}{}%
+        \svgx at ifinlist{ps}{\svgx at format}{\svg at tempa{pdftops}{pdf}{ps}}{}%
+      \fi%
+%    \end{macrocode}
+% Now the desired conversion tool is invoked if requested.
+%    \begin{macrocode}
+      \if at svgx@cnv at run%
+%    \end{macrocode}
+% If no density was given at all, the density for PNG~files is set to 
+% \val{300dpi} by default.
+%    \begin{macrocode}
+        \ifx\svgx at cnv@dpi\relax%
+          \ifx\svgx at cnv@dpi at png\@undefined%
+            \def\svgx at cnv@dpi at png{300}%
+          \fi%
+        \fi%
+%    \end{macrocode}
+% The first given file type with option \opt{extractformat} is used as source 
+% for the conversion process.
+%    \begin{macrocode}
+        \expandafter\svgx at cnv@get at informat\expandafter{\svgx at format}%
+%    \end{macrocode}
+% The conversion is done for each desired file type given in a list by option 
+% \opt{convertformat}.
+%    \begin{macrocode}
+        \@for\svg at tempa:=\svgx at cnv@format\do{%
+          \ifx\svg at tempa\@empty\else%
+            \expandafter\svgx at ifinlist\expandafter{\svg at tempa}{\svgx at format}{%
+              \PackageWarning{svg-extract}{%
+                File type `\svg at tempa' was specified for option\MessageBreak% 
+                `extractformat' (\svgx at format) as well as for \MessageBreak
+                option `convertformat' (\svgx at cnv@format) so the\MessageBreak%
+                conversion won't be done%
+              }%
+            }{%
+              \edef\svg at tempb{%
+                \noexpand\PackageInfo{svg-extract}{%
+                  Converting `\svgx at out@name.\svgx at cnv@informat'\MessageBreak%
+                  to `\svgx at out@name.\svg at tempa'%
+                }%
+              }%
+              \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+              \edef\svg at tempb{%
+                \noexpand\ShellEscape{%
+                  \svgx at cnv@cmd{\svgx at out@name}{\svgx at cnv@informat}{\svg at tempa}%
+                }%
+              }%
+              \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+            }%
+          \fi%
+        }%
+      \fi%
+%    \end{macrocode}
+% As both extraction and conversion are done, all files are moved to the 
+% desired output folder (\opt{extractpath}).
+%    \begin{macrocode}
+      \edef\svg at tempa{\svgx at format\if at svgx@cnv at run,\svgx at cnv@format\fi}%
+      \@for\svg at tempb:=\svg at tempa\do{%
+        \ifx\svg at tempb\@empty\else%
+          \edef\svg at tempb{%
+            \noexpand\svgx at move{\svgx at out@name}{\svg at tempb}{\svgx at out@path}%
+          }%
+          \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+        \fi%
+      }%
+%    \end{macrocode}
+% At the very end, all unwanted auxiliary files are deleted.
+%    \begin{macrocode}
+      \@for\svg at tempa:=\svgx at clean\do{%
+        \expandafter\svgx at ifinlist\expandafter{\svg at tempa}{\svg at tempb}{}{%
+          \edef\svg at tempb{%
+            \noexpand\IfFileExists{"\svgx at out@name".\svg at tempa}{%
+              \noexpand\svg at shell@rm{\svgx at out@name.\svg at tempa}%
+            }{}%
+          }%
+          \expandafter\AtEndDocument\expandafter{%
+            \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+          }%
+        }%
+      }%
+    }%
+  \fi%
+}
+%</extract>
+%    \end{macrocode}
+% \end{macro}^^A \if at svgx@preamble at write
+% \end{macro}^^A \svgx at stream@out
+% \end{macro}^^A \svgx at read@line
+% \end{macro}^^A \svgx at stream@in
+% \end{macro}^^A \svg at extract
+%
+% \iffalse
+%</package&body>
+%<*package&extract&body>
+% \fi
+%
+% \begin{macro}{\svgx at get@out at sec}
+% \begin{macro}{\svgx at out@sec}
+% The macro \cs{svgx at get@out at sec} reads all sectioning counters in order to 
+% get the numbering of the current sectioning level. The value is stored in 
+% \cs{svgx at out@sec}.
+%    \begin{macrocode}
+\newcommand*\svgx at out@sec{unknown}
+\newcommand*\svgx at get@out at sec{%
+  \begingroup%
+    \def\svg at tempa{}%
+    \@for\svg at tempb:={%
+      part,chapter,section,subsection,subsubsection,paragraph,subparagraph%
+    }\do{%
+      \ifx\svg at tempb\@empty\else%
+        \scr at ifundefinedorrelax{the\svg at tempb}{}{%
+          \ifnum\value{\svg at tempb}>\z@\relax%
+            \edef\svg at tempa{\svg at tempb}%
+          \fi%
+        }%
+      \fi%
+    }%
+    \edef\svg at tempb{%
+      \endgroup%
+      \ifx\svg at tempa\@empty\else%
+        \def\noexpand\svgx at out@sec{\csname the\svg at tempa\endcsname}%
+      \fi%
+    }%
+  \svg at tempb%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svgx at out@sec
+% \end{macro}^^A \svgx at get@out at sec
+% \begin{macro}{\svgx at documentclass}
+% \begin{macro}{\if at svgx@classfound}
+% This delimited macro is used to find a occurrence of \cs{documentclass} 
+% within a read in line. The delinmiter \cs{documentclass} is used twice in
+% order to ignore the possible occurrence of white space or anything else right
+% before \cs{documentclass}.
+%    \begin{macrocode}
+\newif\if at svgx@classfound
+\newcommand*\svgx at documentclass{}
+\def\svgx at documentclass#1\documentclass#2\documentclass#3\@nil{%
+  \IfArgIsEmpty{#2}{}{\@svgx at classfoundtrue}%
+}
+%    \end{macrocode}
+% \end{macro}^^A \if at svgx@classfound
+% \end{macro}^^A \svgx at documentclass
+% \begin{macro}{\svgx at read@preamble at till}
+% \begin{macro}{\svgx at read@preamble at from}
+% \begin{macro}{\svgx at read@preamble at skip}
+% These macros are used to skip some parts of a read in preamble file.
+%    \begin{macrocode}
+\newcommand*\svgx at read@preamble at till[2]{%
+  \svgx at read@preamble at skip#1\@nil{till}{#2}%
+}
+\newcommand*\svgx at read@preamble at from[2]{%
+  \svgx at read@preamble at skip#1\@nil{from}{#2}%
+}
+%    \end{macrocode}
+% In principle, the functionality is the same as for \cs{svgx at documentclass}.
+%    \begin{macrocode}
+\newcommand*\svgx at read@preamble at skip{}
+\def\svgx at read@preamble at skip#1\@nil#2#3{%
+%    \end{macrocode}
+% A given token is used to create the macro \cs{svg at tempa} delimited by the 
+% token itself which is used twice to get any stuff right before or after the
+% occurrence.
+%    \begin{macrocode}
+  \def\svg at tempa##1{%
+    \def\svg at tempa####1##1####2##1####3\@nil{%
+      \IfArgIsEmpty{####3}{}{%
+%    \end{macrocode}
+% Write everything which was found right before the macro which starts hiding 
+% area to the output stream and stop writing with \cs{if at svgx@preamble at write}.
+%    \begin{macrocode}
+        \ifstr{#2}{till}{%
+          \IfArgIsEmpty{####1}{}{%
+            \immediate\write\svgx at stream@out{####1}%
+          }%
+          \@svgx at preamble@writefalse%
+        }{%
+%    \end{macrocode}
+% Write everything which was found right after the macro which ends the hiding 
+% area and start writing again with \cs{if at svgx@preamble at write}.
+%    \begin{macrocode}
+          \ifstr{#2}{from}{%
+            \IfArgIsEmpty{####2}{%
+              \def\svgx at read@line{}%
+            }{%
+              \def\svgx at read@line{####2}%
+            }%
+            \@svgx at preamble@writetrue%
+          }{}%
+        }%
+%    \end{macrocode}
+% Additonal stuff which should be done.
+%    \begin{macrocode}
+        #3%
+      }%
+    }%
+  }%
+%    \end{macrocode}
+% Creating the macro \cs{svg at tempa} delimited by the first argument.
+%    \begin{macrocode}
+  \edef\svg at tempb{\expandafter\detokenize\expandafter{#1}}%
+  \expandafter\svg at tempa\expandafter{\svg at tempb}%
+%    \end{macrocode}
+% Calling the created macro.
+%    \begin{macrocode}
+  \edef\svg at tempb{%
+    \expandafter\detokenize\expandafter{\svgx at read@line}\svg at tempb\svg at tempb%
+  }%
+  \expandafter\svg at tempa\svg at tempb\@nil%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svgx at read@preamble at skip
+% \end{macro}^^A \svgx at read@preamble at from
+% \end{macro}^^A \svgx at read@preamble at till
+% \begin{macro}{\svgx at cnv@informat}
+% \begin{macro}{\svgx at cnv@get at informat}
+% The first list entry from argument (\cs{svgx at format}) is extracted by 
+% \cs{svgx at cnv@get at informat}.
+%    \begin{macrocode}
+\newcommand*\svgx at cnv@informat{}
+\newcommand*\svgx at cnv@get at informat[1]{%
+  \begingroup%
+    \def\svg at tempa##1,##2\@nil{%
+      \def\svg at tempa{##1}%
+    }%
+    \svg at tempa#1,\@nil%
+    \edef\svg at tempa{%
+      \noexpand\endgroup%
+      \noexpand\def\noexpand\svgx at cnv@informat{\svg at tempa}%
+    }%
+  \svg at tempa%
+%    \end{macrocode}
+% If the first argument (\cs{svgx at format}) was empty, \cs{svgx at cnv@informat} is 
+% set to the a file type, which is generated anyway.
+%    \begin{macrocode}
+  \ifx\svgx at cnv@informat\@empty%
+    \renewcommand*\svgx at cnv@informat{pdf}%
+    \ifxetex\else\ifpdf\else%
+      \renewcommand*\svgx at cnv@informat{ps}%
+    \fi\fi%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svgx at cnv@get at informat
+% \end{macro}^^A \svgx at cnv@informat
+% \begin{macro}{\svgx at magick@cmd}
+% \begin{macro}{\svgx at gs@cmd}
+% Depending on option \opt{convert}, one of these two macros is actually used
+% by \cs{svgx at cnv@cmd}. For invoking the conversion process, the required 
+% platform-dependent executable is set, if nothing was set by a package option.
+%    \begin{macrocode}
+\ifx\svgx at magick@exe\@empty
+  \ifwindows
+    \renewcommand*\svgx at magick@exe{magick}
+  \else
+    \renewcommand*\svgx at magick@exe{convert}
+  \fi
+\fi
+\newcommand*\svgx at magick@cmd[3]{%
+  \svgx at magick@exe\space%
+  \svgx at useformatkey{svgx at cnv@dpi}{#3}{-density }%
+  \svgx at useformatkey{svgx at magick@set}{#3}{}%
+  "#1.#2"\space%
+  \svgx at useformatkey{svgx at magick@opr}{#3}{}%
+  "#1.#3"%
+}
+%    \end{macrocode}
+%    \begin{macrocode}
+\ifx\svgx at gs@exe\@empty
+  \ifwindows
+    \renewcommand*\svgx at gs@exe{gswin64c}
+  \else
+    \renewcommand*\svgx at gs@exe{gs}
+  \fi
+\fi
+\newcommand*\svgx at gs@cmd[3]{%
+  \svgx at gs@exe\space-dSAFER -dBATCH -dNOPAUSE\space%
+  \svgx at useformatkey{svgx at gs@device}{#3}{-sDEVICE=}%
+  \svgx at useformatkey{svgx at cnv@dpi}{#3}{-r}%
+  \svgx at useformatkey{svgx at gs@opt}{#3}{}%
+  -sOutputFile="#1.#3"\space"#1.#2"%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svgx at gs@cmd
+% \end{macro}^^A \svgx at magick@cmd
+% \begin{macro}{\svgx at move}
+% If the file doesn't exist
+%    \begin{macrocode}
+\newcommand*\svgx at move[3]{%
+  \begingroup%
+    \IfFileExists{"#1".#2}{%
+      \svg at shell@move{#1.#2}{#3#1.#2}%
+    }{%
+      \edef\svg at tempa{#2}%
+      \@svg at tempswafalse%
+      \expandafter\svgx at ifinlist\expandafter{\svg at tempa}{\svgx at cnv@format}{%
+        \@svg at tempswatrue%
+        \def\svg at tempb{conversion}%
+      }{%
+        \expandafter\svgx at ifinlist\expandafter{\svg at tempa}{pdf,ps,eps}{%
+          \@svg at tempswatrue%
+          \def\svg at tempb{extraction}%
+        }{}%
+      }%
+      \if at svg@tempswa%
+        \edef\svg at tempb{%
+          The graphic file \svg at tempb\space failed\MessageBreak%
+          for `#1.#2'\MessageBreak%
+          Troubleshooting: Please check the log file how the\MessageBreak%
+          invocation of the extraction took place and try\MessageBreak%
+          to execute it yourself in the terminal%
+        }%
+      \else%
+        \def\svg at tempb{%
+          The extraction to format `#2' failed\MessageBreak%
+          for `#1.#2'\MessageBreak%
+          Only file types `pdf,ps,eps' are supported for\MessageBreak%
+          key `exportformat'%
+        }%
+      \fi%
+      \PackageWarning{svg-extract}{\svg at tempb}%
+    }%
+  \endgroup%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svgx at move
+%
+% \iffalse
+%</package&extract&body>
+%<*package&extract&option>
+% \fi
+%
+% \begin{macro}{\svgx at ifinlist}
+% Check, if the first argument is included in a comma-separated list in the 
+% second argument. Keep in mind that the first argument is not expanded at all, 
+% the second one exactly once. 
+%    \begin{macrocode}
+\newcommand*\svgx at ifinlist[2]{%
+  \begingroup%
+    \def\svg at tempa##1,#1,##2\@nil{%
+      \IfArgIsEmpty{##2}{%
+        \aftergroup\@secondoftwo%
+      }{%
+        \aftergroup\@firstoftwo%
+      }%
+    }%
+    \expandafter\svg at tempa\expandafter,#2,#1,\@nil%
+  \endgroup%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svgx at ifinlist
+% \begin{macro}{\svgx at onlywindows}
+% Do only some stuff, if Windows was detected.
+%    \begin{macrocode}
+\newcommand*\svgx at onlywindows[1]{}
+\AfterPackage*{ifplatform}{\renewcommand*\svgx at onlywindows[1]{\ifwindows#1\fi}}
+%    \end{macrocode}
+% \end{macro}^^A \svgx at onlywindows
+% \begin{macro}{\svgx at ifkeyandval}
+% It is checked whether a key was given as \val{\meta{key}=\meta{value}} or 
+% like \val{\meta{key}=\{\meta{format}=\meta{value}\}}.
+%    \begin{macrocode}
+\newcommand*\svgx at ifkeyandval[3]{%
+  \def\svg at tempa##1=##2=##3\@nil{\ifstr{##3}{=}{#2}{#3}}%
+  \svg at tempa#1==\@nil%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svgx at ifkeyandval
+% \begin{macro}{\svgx at cnv@get at dpi}
+% This macro is used to resolve a given value to set the density for the 
+% conversion. The delimited macros \cs{svg at tempa} and \cs{svg at tempb} are 
+% defined to first crop any given suffix \val{dpi} and second to split two 
+% numbers at |x|, if present. Pay attention how both macros are invoked. In the
+% end, a passed value in any of the forms \val{300}, \val{300dpi}, \val{300x400}
+% or \val{300x400dpi} and even \val{300dpix400dpi} is possible. The result is
+% stored in \cs{svg at tempa}.
+%    \begin{macrocode}
+\newcommand*\svgx at cnv@get at dpi[1]{%
+  \begingroup%
+    \def\svg at tempa##1dpi##2x##3dpi##4\@nil{%
+      \edef\svg at tempa{##1}%
+%    \end{macrocode}
+% Switch \cs{if at svg@tempswa} as \cs{iftrue} means, a valid value was found.
+%    \begin{macrocode}
+      \@svg at tempswafalse%
+%    \end{macrocode}
+% If only the first argument is a number and third is empty, a single number 
+% was given and there's nothing more to do. If the argument is something like 
+% \val{300dpix400dpi}, the third argument is the second number.
+%    \begin{macrocode}
+      \ifnumber{##1}{%
+        \IfArgIsEmpty{##3}{\@svg at tempswatrue}{%
+          \ifnumber{##3}{\edef\svg at tempa{##1x##3}}{}%
+        }%
+      }{}%
+      \if at svg@tempswa\else%
+        \expandafter\svg at tempb\svg at tempa xx\@nil%
+      \fi%
+    }%
+%    \end{macrocode}
+% Macro \cs{svg at tempb} splits at |x| and checks, if something valid like 
+% \val{300x400} was given. If true, the value is stored in \cs{svg at tempa}.
+%    \begin{macrocode}
+    \def\svg at tempb##1x##2x##3\@nil{%
+      \ifstr{##3}{x}{%
+        \@svg at tempswatrue%
+        \IfArgIsEmpty{##1}{\@svg at tempswafalse}{%
+          \ifnumber{##1}{}{\@svg at tempswafalse}%
+        }%
+        \IfArgIsEmpty{##2}{\@svg at tempswafalse}{%
+          \ifnumber{##2}{}{\@svg at tempswafalse}%
+        }%
+        \if at svg@tempswa%
+          \edef\svg at tempa{##1x##2}%
+        \fi%
+      }{}%
+    }%
+    \IfArgIsEmpty{#1}{%
+      \let\svg at tempa\@empty%
+    }{%
+      \lowercase{\svg at tempa#1dpi#1xdpi\@nil}%
+      \if at svg@tempswa\else%
+        \let\svg at tempa\relax%
+      \fi%
+    }%
+    \edef\svg at tempb{%
+      \noexpand\endgroup%
+      \ifx\svg at tempa\relax%
+        \noexpand\let\noexpand\svg at tempa\noexpand\relax%
+      \else%
+        \noexpand\def\noexpand\svg at tempa{\svg at tempa}%
+      \fi%
+    }%
+  \svg at tempb%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svgx at cnv@get at dpi
+% \begin{macro}{\svgx at setformatkey}
+% \begin{macro}{\svgx at useformatkey}
+% With \cs{svgx at setformatkey} the---maybe output format depend---keys for the 
+% conversion tools are set. First argument contains the value given to a key, 
+% second the command sequence name of the macro, to whom the value shall be 
+% allocated.
+%    \begin{macrocode}
+\newcommand*\svgx at setformatkey[2]{%
+%    \end{macrocode}
+% A key of the form \val{\meta{key}=\{\meta{format}=\meta{value}\}} is given. 
+% The desired output format can be accessed with |##1|, the value with |##2|
+% within the arguments of \cs{svgx at ifkeyandval}.
+%    \begin{macrocode}
+  \svgx at ifkeyandval{#1}{%
+    \svg at ifvalueisrelax{##2}{%
+      \expandafter\let\csname #2@##1\endcsname\relax%
+    }{%
+      \@namedef{#2@##1}{##2}%
+    }%
+%    \end{macrocode}
+% A key of the form \val{\meta{key}=\{\meta{format}=\meta{value}\}} is given.
+% The value can be used with |##1|.
+%    \begin{macrocode}
+  }{%
+    \svg at ifvalueisrelax{##1}{%
+      \expandafter\let\csname #2\endcsname\relax%
+    }{%
+      \@namedef{#2}{##1}%
+    }%
+  }%
+}
+%    \end{macrocode}
+% The command \cs{svgx at useformatkey} checks, if a format specific key was 
+% definded with \cs{svgx at setformatkey}, whereas the format is given in the 
+% second argument. If this is not the case, the setting for all output formats 
+% is used. After that, a specific key appended with a |+| can be used to do 
+% some additional stuff.
+%    \begin{macrocode}
+\newcommand*\svgx at useformatkey[3]{%
+  \scr at ifundefinedorrelax{#1@#2}{%
+    \scr at ifundefinedorrelax{#1}{}{%
+      \expandafter\ifx\csname #1\endcsname\@empty\else%
+        #3\@nameuse{#1}\space%
+      \fi%
+    }%
+    \scr at ifundefinedorrelax{#1@#2+}{}{%
+      \expandafter\ifx\csname #1@#2+\endcsname\@empty\else%
+        #3\@nameuse{#1@#2+}\space%
+      \fi%
+    }%
+  }{%
+%    \end{macrocode}
+% If this a format specific key was definded, it is used.
+%    \begin{macrocode}
+    \expandafter\ifx\csname #1@#2\endcsname\@empty\else%
+      #3\@nameuse{#1@#2}\space%
+    \fi%
+  }%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svgx at useformatkey
+% \end{macro}^^A \svgx at setformatkey
+%
+%
+%
+% \subsection{Commands for the separate auxiliary \LaTeX-file}
+%
+% For the extraction of independent graphics, an auxiliary \LaTeX~file is 
+% needed. Within this file, the following commands are used to include the 
+% desired graphic.
+%
+% \begin{macro}{\svgxsetbox}
+% \begin{macro}{\svgx at box}
+% Within the preamble of the auxiliary \LaTeX~file, the desired grahic is used 
+% to setup a box, which is used both to define the papersize as well as for the 
+% output itself.
+%    \begin{macrocode}
+\newbox\svgx at box
+\newcommand*\svgxsetbox[2][]{%
+  \sbox\svgx at box{\svg@@input[{#1},draft=false]{#2}}%
+%    \end{macrocode}
+% Setting crop-mode for the \TUDScript-classes.
+%    \begin{macrocode}
+  \csname @tud at x@standalone at croptrue\endcsname%
+  \svgxsetpapersize%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svgx at box
+% \end{macro}^^A \svgxsetbox
+% \begin{macro}{\svgxsetpapersize}
+% This macro sets all well known length macros for defining the paper size as 
+% well as the type area to the size of \cs{svgx at box}.
+%    \begin{macrocode}
+\newcommand*\svgxsetpapersize{%
+  \setlength\paperwidth{\the\wd\svgx at box}%
+  \ifx\stockwidth\@undefined\else%
+    \setlength\stockwidth{\paperwidth}%
+  \fi%
+  \ifx\mediawidth\@undefined\else%
+    \setlength\mediawidth{\paperwidth}%
+  \fi%
+  \setlength\textwidth{\paperwidth}%
+  \setlength\paperheight{\the\dimexpr\ht\svgx at box+\dp\svgx at box\relax}%
+  \ifx\stockheight\@undefined\else%
+    \setlength\stockheight{\paperheight}%
+  \fi%
+  \ifx\mediaheight\@undefined\else%
+    \setlength\mediaheight{\paperheight}%
+  \fi%
+  \setlength\textheight{\paperheight}%
+%    \end{macrocode}
+% Any other length regarding the layout is set to have no influence at all. 
+% Hence the document has the same size as the graphic.
+%    \begin{macrocode}
+  \hoffset=-1in%
+  \oddsidemargin=\z@%
+  \evensidemargin=\z@%
+  \voffset=-1in%
+  \topmargin=\z@%
+  \headheight=\z@%
+  \headsep=\z@%
+  \topskip=\z@%
+  \footskip=\z@%
+  \marginparsep=\z@%
+  \marginparwidth=\z@%
+  \marginparpush=\z@%
+}
+\@onlypreamble\svgxsetpapersize
+%    \end{macrocode}
+% \end{macro}^^A \svgxsetpapersize
+% \begin{macro}{\svgxoutputbox}
+% \begin{macro}{\if at svgx@beamer}
+% With \cs{svgxoutputbox} the created box is displayed.
+%    \begin{macrocode}
+\newif\if at svgx@beamer
+\@ifclassloaded{beamer}{\@svgx at beamertrue}{}%
+\newcommand*\svgxoutputbox{%
+  \begingroup%
+    \setlength\parindent{\z@}%
+    \setlength\parskip{\z@}%
+    \setlength\parfillskip{\z@}%
+    \if at svgx@beamer%
+      \setbeamertemplate{navigation symbols}{}%
+      \begin{frame}[plain]%
+      \usebox\svgx at box%
+      \end{frame}%
+    \else%
+      \usebox\svgx at box%
+    \fi%
+    \endgraf%
+  \endgroup%
+}
+%    \end{macrocode}
+% \end{macro}^^A \if at svgx@beamer
+% \end{macro}^^A \svgxoutputbox
+%
+% \iffalse
+%</package&extract&option>
+%<*package&option>
+% \fi
+%
+%
+%
+% \section{Processing Options}
+%
+% Setting the default options and processing the given ones during when loading 
+% the packages.
+%    \begin{macrocode}
+%<*base>
+\FamilyExecuteOptions{SVG}{%
+  inkscape=true,inkscapepath=basesubdir,inkscapelatex=true,%
+  inkscapearea=drawing,usexcolor=true,usetransparent=true%
+}
+%</base>
+%<*extract>
+\FamilyExecuteOptions{SVG}{%
+  extract=true,extractpath=basesubdir,extractruns=2,extractname=namenumbered,%
+  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}%
+}
+%</extract>
+\FamilyProcessOptions{SVG}
+%    \end{macrocode}
+%
+% \iffalse
+%</package&option>
+%<*package&base&body>
+% \fi
+%
+%
+%
+% \section{Macros for file access}
+%
+% Finally, platform dependend macros for creating directories as well as moving 
+% and deleting files are provided, if \file{-{}-shell-escape} is enabled. Only 
+% then package \pkg{ifplatform} is only used in order to do not raise a warning.
+%    \begin{macrocode}
+\ifnum\pdf at shellescape=\@ne\relax\else%
+  \expandafter\endinput%
+\fi
+\RequirePackage{ifplatform}[2010/10/22]
+%    \end{macrocode}
+% \begin{macro}{\svg at shell@mkdir}
+% \begin{macro}{\svg at shell@@mkdir}
+% \begin{macro}{\svg at shell@mv}
+% \begin{macro}{\svg at shell@@mv}
+% \begin{macro}{\svg at shell@rm}
+% \begin{macro}{\svg at shell@@rm}
+% The platform dependent commands for file access.
+%    \begin{macrocode}
+\ifwindows
+  \newcommand*\svg at shell@@mkdir[1]{if not exist "#1" mkdir "#1"}
+  \newcommand*\svg at shell@@mv{move}
+  \newcommand*\svg at shell@@rm{del}
+\else
+  \newcommand*\svg at shell@@mkdir[1]{mkdir -p "#1"}
+  \newcommand*\svg at shell@@mv{mv}
+  \newcommand*\svg at shell@@rm{rm}
+\fi
+%    \end{macrocode}
+% A directory should only be created, if it isn't the current working directory.
+%    \begin{macrocode}
+\newcommand*\svg at shell@mkdir[1]{%
+  \begingroup%
+    \edef\svg at tempa{#1}%
+    \svg at quotes@remove{\svg at tempa}%
+    \@svg at tempswatrue%
+    \ifstr{\svg at tempa}{}{\@svg at tempswafalse}{%
+    \ifstr{\svg at tempa}{./}{\@svg at tempswafalse}{%
+    }}%
+    \if at svg@tempswa%
+      \ShellEscape{\svg at shell@@mkdir{\svg at tempa}}%
+    \fi%
+  \endgroup%
+}
+%    \end{macrocode}
+% Commands for moving and deleting files.
+%    \begin{macrocode}
+\newcommand*\svg at shell@move[2]{%
+  \ShellEscape{\svg at shell@@mv\space"#1"\space"#2"}%
+}
+\newcommand*\svg at shell@rm[1]{%
+  \ShellEscape{\svg at shell@@rm\space"#1"}%
+}
+%    \end{macrocode}
+% \end{macro}^^A \svg at shell@@rm
+% \end{macro}^^A \svg at shell@rm
+% \end{macro}^^A \svg at shell@@mv
+% \end{macro}^^A \svg at shell@mv
+% \end{macro}^^A \svg at shell@@mkdir
+% \end{macro}^^A \svg at shell@mkdir
+%
+% \iffalse
+%</package&base&body>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% \iffalse
+%<*package&old>
+% \fi
+%
+%
+%
+% \section{Old Implementation}
+%
+%   The package, which requires the packages \pkg{xkeyval} for the options,
+%   \pkg{subfig} for automatic labeling within the subfigure command, the 
+%   \pkg{import} package for correct handling of paths, \pkg{graphicx} for the
+%   PDF~file inclusion commands, \pkg{transparent} for transparency, and 
+%   \pkg{xcolor} for color, is initialized.
+%    \begin{macrocode}
 \ProvidesPackage{svg}[2012/09/05 v1.0 SVG inclusion and extraction]%
 \@ifpackageloaded{xkeyval}{}{\RequirePackage{xkeyval}}%
 \@ifpackageloaded{subfig}{}{\RequirePackage{subfig}}%
@@ -471,14 +5082,15 @@
 \@ifpackageloaded{transparent}{}{\RequirePackage{transparent}}%
 \@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}%
 %    \end{macrocode}
-% \end{macro}
 %
-% \begin{macro}{input definition}
-%   All commands used for input (i.e. for the \svg and preamble) are
-%   defined within the |\SVG at in| prefix, and set by the key definition
-%   of the line following their definition. The |exclude| boolean,
-%   used to stop the inclusion of the \svg within the document is also
-%   defined.
+%
+%
+% \subsection{Input definition}
+%
+%   All commands used for input (i.e. for the SVG~file and preamble) are 
+%   defined within the \cs{SVG at in} prefix, and set by the key definition of the 
+%   line following their definition. The \opt{exclude} boolean, used to stop the
+%   inclusion of the SVG~file within the document is also defined.
 %    \begin{macrocode}
 \def\SVG at in@preamble{\jobname.tex}%
 \define at key[SVG]{svg.sty}{preamble}{\def\SVG at in@preamble{#1}}%
@@ -488,29 +5100,36 @@
 \define at key[SVG]{svg.sty}{end}{\def\SVG at in@end{#1}}%
 \define at boolkey[SVG]{svg.sty}[SVG at in@]{exclude}[true]{}%
 %    \end{macrocode}
-% \end{macro}
 %
-% \begin{macro}{length definition}
-%   All commands used for output are defined within the |\SVG at out|
-%   prefix, beginning with the dimensions of the extracted image. If no
-%   dimensions are supplied both |useheight| and |usewidth| are
-%   |false|, and so the natural dimensions of the \svg are used. If
-%   both |usewidth| and |useheight| are |true|, the width is used.
+%
+%
+% \subsection{Length definition}
+%
+%   All commands used for output are defined within the \cs{SVG at out} prefix,
+%   beginning with the dimensions of the extracted image. If no dimensions are
+%   supplied both \cs{ifSVG at out@usewidth} and \cs{ifSVG at out@useheight} are 
+%   \val{false}, and so the natural dimensions of the SVG~file are used.
+%   If both \cs{ifSVG at out@usewidth} and \cs{ifSVG at out@useheight} are 
+%   \val{true}, the width is used.
 %    \begin{macrocode}
 \newlength\SVG at out@width%
 \newif\ifSVG at out@usewidth%
-\define at key[SVG]{svg.sty}{width}%
-{\setlength{\SVG at out@width}{#1}\SVG at out@usewidthtrue}%
+\define at key[SVG]{svg.sty}{width}{%
+  \setlength{\SVG at out@width}{#1}\SVG at out@usewidthtrue%
+}%
 \newlength\SVG at out@height%
 \newif\ifSVG at out@useheight%
-\define at key[SVG]{svg.sty}{height}%
-{\setlength{\SVG at out@height}{#1}\SVG at out@useheighttrue}%
+\define at key[SVG]{svg.sty}{height}{%
+  \setlength{\SVG at out@height}{#1}\SVG at out@useheighttrue%
+}%
 %    \end{macrocode}
-% \end{macro}
 %
-% \begin{macro}{extract booleans}
+%
+%
+% \subsection{Extract booleans}
+%
 %   The booleans for the extraction formats are defined. Additionally,
-%   the global export variable is defined, which is set to |true|
+%   the global export variable is defined, which is set to \val{true}
 %   whenever any extraction is requested.
 %    \begin{macrocode}
 \define at boolkey[SVG]{svg.sty}[SVG at out@]{pdf}[true]{}%
@@ -518,11 +5137,13 @@
 \define at boolkey[SVG]{svg.sty}[SVG at out@]{png}[true]{}%
 \newif\ifSVG at out@extract
 %    \end{macrocode}
-% \end{macro}
 %
-% \begin{macro}{output definitions}
+%
+%
+% \subsection{Output definitions}
+%
 %   The extraction path, extraction root name, clean boolean,
-%   pre-\latex commands, and post-\latex commands are defined.
+%   pre-\LaTeX~commands, and post-\LaTeX~commands are defined.
 %    \begin{macrocode}
 \def\SVG at out@path{./}%
 \define at key[SVG]{svg.sty}{path}{\def\SVG at out@path{#1}}%
@@ -534,10 +5155,12 @@
 \def\SVG at out@postex{}%
 \define at key[SVG]{svg.sty}{postex}{\def\SVG at out@postex{#1}}%
 %    \end{macrocode}
-% \end{macro}
 %
-% \begin{macro}{command definitions}
-%   The command options are defined within the prefix |\SVG at cmd| and
+%
+%
+% \subsection{Command definitions}
+%
+%   The command options are defined within the prefix \cs{SVG at cmd} and
 %   are set by the key definition following each command definition.
 %    \begin{macrocode}
 \def\SVG at cmd@inkscape{inkscape -z -C}%
@@ -549,29 +5172,32 @@
 \def\SVG at cmd@convert{convert -density 300}%
 \define at key[SVG]{svg.sty}{convert}{\def\SVG at cmd@convert{#1}}%
 %    \end{macrocode}
-% \end{macro}
 %
-% \begin{macro}{process options}
-%   All the options for the package are processed, and the \svg
-%   counter is defined. The \svg counter is used to correctly handle
-%   the |subfigure| counting.
+%
+%
+% \subsection{Process options}
+%
+%   All the options for the package are processed, and a counter is defined, 
+%   which is used to correctly handle the \cnt{subfigure} counting.
 %    \begin{macrocode}
 \ProcessOptionsX[SVG]%
 \newcounter{svgfigure}[figure]%
 %    \end{macrocode}
-% \end{macro}
 %
-% \begin{macro}{\setsvg}
+%
+%
+% \subsection{User interface}
+%
 %   Define the macro to globally set keys.
 %    \begin{macrocode}
 \def\setsvg#1{\setkeys[SVG]{svg.sty}{#1}}%
 %    \end{macrocode}
-% \end{macro}
 %
-% \begin{macro}{\includesvg}
-%   Define the macro used to include an \svg. Set the keys and
+%   Define the macro used to include a SVG~file. Set the keys and
 %   determine if extraction should occur.
 %    \begin{macrocode}
+\newread\SVG at in@file%
+\newwrite\SVG at out@file%
 \def\includesvg{\@ifnextchar[\@includesvg{\@includesvg[]}}%
 \def\@includesvg[#1]#2{%
   \setkeys[SVG]{svg.sty}{#1}%
@@ -580,154 +5206,202 @@
   \ifSVG at out@eps \SVG at out@extracttrue \fi%
   \ifSVG at out@png \SVG at out@extracttrue \fi%
 %    \end{macrocode}
-% Run \inkscape to separate the \svg into text and image. Only run
-% \inkscape if the \svg is newer than the generated text and image.
-%    \begin{macrocode} 
-\ifnum\pdfstrcmp%
-{\pdffilemoddate{\SVG at in@path#2.svg}}%
-{\pdffilemoddate{\SVG at in@path#2.pdf}}>0%
-\immediate\write18{\SVG at cmd@inkscape \space -f\SVG at in@path#2.svg%
-  \space-A\SVG at in@path#2.pdf --export-latex}%
-\fi%
+% Run \app{Inkscape} to separate the SVG~file into text and image. Only 
+% run \app{Inkscape} if the SVG~file is newer than the generated text 
+% and image.
+%    \begin{macrocode}
+  \ifnum\pdfstrcmp{%
+    \pdffilemoddate{\SVG at in@path#2.svg}%
+  }{%
+    \pdffilemoddate{\SVG at in@path#2.pdf}%
+  }>0\relax%
+    \immediate\write18{%
+      \SVG at cmd@inkscape\space%
+        -f \SVG at in@path#2.svg\space%
+        -A \SVG at in@path#2.pdf\space%
+        --export-latex%
+    }%
+  \fi%
 %    \end{macrocode}
-% Determine the image width and height using |\includegraphics|.
-%    \begin{macrocode} 
-\ifSVG at out@usewidth%
-\settoheight\SVG at out@height%
-{\includegraphics[width=\SVG at out@width]{\SVG at in@path#2}}%
-\else\ifSVG at out@useheight%
-\settowidth\SVG at out@width%
-{\includegraphics[height=\SVG at out@height]{\SVG at in@path#2}}%
-\else%
-\settoheight\SVG at out@height{\includegraphics{\SVG at in@path#2}}%
-\settowidth\SVG at out@width{\includegraphics{\SVG at in@path#2}}%
-\fi%
-\fi%
+% Determine the image width and height using \cs{includegraphics}.
+%    \begin{macrocode}
+  \ifSVG at out@usewidth%
+    \settoheight\SVG at out@height{%
+      \includegraphics[width=\SVG at out@width]{\SVG at in@path#2}%
+    }%
+  \else%
+    \ifSVG at out@useheight%
+      \settowidth\SVG at out@width{%
+        \includegraphics[height=\SVG at out@height]{\SVG at in@path#2}%
+      }%
+    \else%
+      \settoheight\SVG at out@height{%
+        \includegraphics{\SVG at in@path#2}%
+      }%
+      \settowidth\SVG at out@width{\includegraphics{\SVG at in@path#2}}%
+    \fi%
+  \fi%
 %    \end{macrocode}
 % Open the output file for extraction.
-%    \begin{macrocode} 
+%    \begin{macrocode}
 % Open the output file.
-\ifSVG at out@extract%
-\newwrite\SVG at out@file%
-\setcounter{svgfigure}{\value{figure}}%
-\stepcounter{svgfigure}%
-\def\SVG at out@filename{\SVG at out@name}%
-\immediate\openout\SVG at out@file=\SVG at out@path\SVG at out@filename.tex%
-\fi%
+  \ifSVG at out@extract%
+    \setcounter{svgfigure}{\value{figure}}%
+    \stepcounter{svgfigure}%
+    \def\SVG at out@filename{\SVG at out@name}%
+    \immediate\openout\SVG at out@file=\SVG at out@path\SVG at out@filename.tex%
+  \fi%
 %    \end{macrocode}
 % Open and write the preamble. Notice that the catcodes for |#| need
 % to be changed to prevent double expansion when reading the line.
-%    \begin{macrocode} 
-\ifSVG at out@extract%
-\def\SVG at in@line{}%
-\newread\SVG at in@file%
-\immediate\openin\SVG at in@file=\SVG at in@preamble%
-\fi%
-\newif\ifSVG at in@read%
-\ifSVG at out@extract \SVG at in@readtrue \fi%
-\@whilesw\ifSVG at in@read\fi{%
-  \catcode`\#=12\relax\endlinechar=-1%
-  \immediate\read\SVG at in@file to \SVG at in@line%
-  \ifx\SVG at in@end\SVG at in@line%
-  \SVG at in@readfalse%
-  \else%
-  \immediate\write\SVG at out@file{\unexpanded\expandafter{\SVG at in@line}}%
+%    \begin{macrocode}
+  \ifSVG at out@extract%
+    \def\SVG at in@line{}%
+    \immediate\openin\SVG at in@file=\SVG at in@preamble%
   \fi%
-  \ifeof\SVG at in@file\SVG at in@readfalse\fi%
-  \endlinechar=13\catcode`\#=6\relax}%
-\ifSVG at out@extract \immediate\closein\SVG at in@file \fi%
+  \newif\ifSVG at in@read%
+  \ifSVG at out@extract \SVG at in@readtrue \fi%
+  \@whilesw\ifSVG at in@read\fi{%
+    \catcode`\#=12\relax\endlinechar=-1%
+    \immediate\read\SVG at in@file to \SVG at in@line%
+    \ifx\SVG at in@end\SVG at in@line%
+      \SVG at in@readfalse%
+    \else%
+      \immediate\write\SVG at out@file{\unexpanded\expandafter{\SVG at in@line}}%
+    \fi%
+    \ifeof\SVG at in@file\SVG at in@readfalse\fi%
+    \endlinechar=13\catcode`\#=6\relax%
+  }%
+  \ifSVG at out@extract \immediate\closein\SVG at in@file \fi%
 %    \end{macrocode}
 % Now write everything needed after the preamble. This includes
-% requiring the |import| package and defining all the dimensions need
+% requiring the \pkg{import} package and defining all the dimensions need
 % to match the document size with the image size.
-%    \begin{macrocode} 
-\ifSVG at out@extract%
-\def\SVG at out@defpack{\makeatletter%
-  \@ifpackageloaded{import}{}{\RequirePackage{import}}%
-  \@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}}%
-  \@ifpackageloaded{transparent}{}{\RequirePackage{transparent}}%
-  \@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}\makeatother}%
-\def\SVG at out@defwidth{\def\svgwidth{0.99\textwidth}}%
-\def\SVG at out@definput{\import{\SVG at in@path}{#2.pdf_tex}}%
-\immediate\write\SVG at out@file{\unexpanded\expandafter{\SVG at out@defpack}}%
-\immediate\write\SVG at out@file%
-{\noexpand\setlength{\pdfpagewidth}{\the\SVG at out@width}}%
-\immediate\write\SVG at out@file%
-{\noexpand\setlength{\pdfpageheight}{\the\SVG at out@height}}%
-\immediate\write\SVG at out@file%
-{\noexpand\setlength{\paperheight}{\pdfpageheight}}%
-\immediate\write\SVG at out@file%
-{\noexpand\setlength{\paperwidth}{\pdfpagewidth}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\textheight}{\paperheight}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\textwidth}{\paperwidth}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\textheight}{\paperheight}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\oddsidemargin}{-1in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\evensidemargin}{-1in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\topmargin}{-1in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\headheight}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\headsep}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\topskip}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\footskip}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\parindent}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\parsep}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\parskip}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\begin{document}}%
-  \immediate\write\SVG at out@file{%
-    \noexpand\pagestyle{empty}%
-    \noexpand\begin{center}%
-      \unexpanded\expandafter{\SVG at out@defwidth}%
-      \unexpanded\expandafter{\SVG at out@pretex}%
-      \expandafter\noexpand\SVG at out@definput%
-      \unexpanded\expandafter{\SVG at out@postex}%
-      \noexpand\end{center}}%
-  \immediate\write\SVG at out@file{\noexpand\end{document}}%
-\immediate\closeout\SVG at out@file%
-\fi%
+%    \begin{macrocode}
+  \ifSVG at out@extract%
+    \def\SVG at out@defpack{%
+      \makeatletter%
+      \@ifpackageloaded{import}{}{\RequirePackage{import}}%
+      \@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}}%
+      \@ifpackageloaded{transparent}{}{\RequirePackage{transparent}}%
+      \@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}%
+      \makeatother%
+    }%
+    \def\SVG at out@defwidth{\def\svgwidth{0.99\textwidth}}%
+    \def\SVG at out@definput{\import{\SVG at in@path}{#2.pdf_tex}}%
+    \immediate\write\SVG at out@file{\unexpanded\expandafter{\SVG at out@defpack}}%
+    \immediate\write\SVG at out@file{%
+      \noexpand\setlength{\pdfpagewidth}{\the\SVG at out@width}%
+    }%
+    \immediate\write\SVG at out@file{%
+      \noexpand\setlength{\pdfpageheight}{\the\SVG at out@height}%
+    }%
+    \immediate\write\SVG at out@file{%
+      \noexpand\setlength{\paperheight}{\pdfpageheight}%
+    }%
+    \immediate\write\SVG at out@file{%
+      \noexpand\setlength{\paperwidth}{\pdfpagewidth}%
+    }%
+    \immediate\write\SVG at out@file{%
+      \noexpand\setlength{\textheight}{\paperheight}%
+    }%
+    \immediate\write\SVG at out@file{%
+      \noexpand\setlength{\textwidth}{\paperwidth}%
+    }%
+    \immediate\write\SVG at out@file{%
+      \noexpand\setlength{\textheight}{\paperheight}%
+    }%
+    \immediate\write\SVG at out@file{\noexpand\setlength{\oddsidemargin}{-1in}}%
+    \immediate\write\SVG at out@file{\noexpand\setlength{\evensidemargin}{-1in}}%
+    \immediate\write\SVG at out@file{\noexpand\setlength{\topmargin}{-1in}}%
+    \immediate\write\SVG at out@file{\noexpand\setlength{\headheight}{0in}}%
+    \immediate\write\SVG at out@file{\noexpand\setlength{\headsep}{0in}}%
+    \immediate\write\SVG at out@file{\noexpand\setlength{\topskip}{0in}}%
+    \immediate\write\SVG at out@file{\noexpand\setlength{\footskip}{0in}}%
+    \immediate\write\SVG at out@file{\noexpand\setlength{\parindent}{0in}}%
+    \immediate\write\SVG at out@file{\noexpand\setlength{\parsep}{0in}}%
+    \immediate\write\SVG at out@file{\noexpand\setlength{\parskip}{0in}}%
+    \immediate\write\SVG at out@file{%
+      \noexpand\begin{document}%
+      \noexpand\pagestyle{empty}%
+      \noexpand\begin{center}%
+        \unexpanded\expandafter{\SVG at out@defwidth}%
+        \unexpanded\expandafter{\SVG at out@pretex}%
+        \expandafter\noexpand\SVG at out@definput%
+        \unexpanded\expandafter{\SVG at out@postex}%
+        \noexpand\end{center}%
+        \noexpand\end{document}%
+      }%
+    \immediate\closeout\SVG at out@file%
+  \fi%
 %    \end{macrocode}
-% Run \latex on the extracted file and create the \pdf.
-%    \begin{macrocode} 
-\ifSVG at out@extract%
-\immediate\write18{\SVG at cmd@pdflatex\space\SVG at out@path\SVG at out@filename.tex}%
-\fi%
+% Run \LaTeX{} on the extracted file and create the PDF~file.
+%    \begin{macrocode}
+  \ifSVG at out@extract%
+    \immediate\write18{%
+      \SVG at cmd@pdflatex\space\SVG at out@path\SVG at out@filename.tex%
+    }%
+  \fi%
 %    \end{macrocode}
-% Convert the \pdf to \eps if requested.
-%    \begin{macrocode} 
-\ifSVG at out@eps%
-\immediate\write18{\SVG at cmd@pdftops\space\SVG at out@filename.pdf}%
-\immediate\write18{mv \SVG at out@filename.eps% 
-  \space\SVG at out@path\SVG at out@filename.eps}%
-\fi%
+% Convert the PDF~file to EPS~file if requested.
+%    \begin{macrocode}
+  \ifSVG at out@eps%
+    \immediate\write18{\SVG at cmd@pdftops\space\SVG at out@filename.pdf}%
+    \immediate\write18{%
+      mv \SVG at out@filename.eps\space\SVG at out@path\SVG at out@filename.eps%
+    }%
+  \fi%
 %    \end{macrocode}
-% Convert the \pdf to \png if requested.
-%    \begin{macrocode} 
-\ifSVG at out@png%
-\immediate\write18{\SVG at cmd@convert\space\SVG at out@filename.pdf%
-  \space\SVG at out@filename.png}%
-\immediate\write18{mv \SVG at out@filename.png%
-  \space\SVG at out@path\SVG at out@filename.png}%
-\fi%
+% Convert the PDF~file to PNG~file if requested.
+%    \begin{macrocode}
+  \ifSVG at out@png%
+    \immediate\write18{%
+      \SVG at cmd@convert\space%
+        \SVG at out@filename.pdf\space\SVG at out@filename.png%
+    }%
+    \immediate\write18{%
+      mv \SVG at out@filename.png\space\SVG at out@path\SVG at out@filename.png%
+    }%
+  \fi%
 %    \end{macrocode}
 % Clean up if requested.
-%    \begin{macrocode} 
-\ifSVG at out@extract%
-\ifSVG at out@pdf%
-\immediate\write18{mv \SVG at out@filename.pdf%
-  \space\SVG at out@path\SVG at out@filename.pdf}%
-\else \ifSVG at out@clean \immediate\write18{rm \SVG at out@filename.pdf} \fi%
-\fi%
-\ifSVG at out@clean%
-\immediate\write18{rm \SVG at out@path\SVG at out@filename.tex%
-  \space\SVG at out@filename.aux \SVG at out@filename.log \SVG at out@filename.out}%
-\fi\fi%
+%    \begin{macrocode}
+  \ifSVG at out@extract%
+    \ifSVG at out@pdf%
+      \immediate\write18{%
+        mv \SVG at out@filename.pdf\space\SVG at out@path\SVG at out@filename.pdf%
+      }%
+    \else%
+      \ifSVG at out@clean \immediate\write18{rm \SVG at out@filename.pdf} \fi%
+    \fi%
+    \ifSVG at out@clean%
+      \immediate\write18{%
+        rm
+          \SVG at out@path\SVG at out@filename.tex\space%
+          \SVG at out@filename.aux\space%
+          \SVG at out@filename.log\space%
+          \SVG at out@filename.out%
+      }%
+    \fi%
+  \fi%
 %    \end{macrocode}
-% Finally, include the \svg in the current document and end the package.
-%    \begin{macrocode} 
-\ifSVG at in@exclude \else {\def\svgwidth{\the\SVG at out@width}%
-\SVG at out@pretex\import{\SVG at in@path}{#2.pdf_tex}\SVG at out@postex} \fi%
+% Finally, include the SVG~file in the current document and end the package.
+%    \begin{macrocode}
+  \ifSVG at in@exclude\else%
+    {%
+      \def\svgwidth{\the\SVG at out@width}%
+      \SVG at out@pretex%
+      \import{\SVG at in@path}{#2.pdf_tex}%
+      \SVG at out@postex%
+    }%
+  \fi%
 }%
 %    \end{macrocode}
-% \end{macro}
+%
 % \iffalse
-%</svg>
+%</package&old>
 % \fi
-% \Finale
\ No newline at end of file
+%
+% \Finale
+%
+\endinput

Added: trunk/Master/texmf-dist/tex/latex/svg/svg-extract.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/svg/svg-extract.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/svg/svg-extract.sty	2017-03-27 21:47:01 UTC (rev 43625)
@@ -0,0 +1,1147 @@
+%%
+%% This is file `svg-extract.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% svg.dtx  (with options: `package,option,extract')
+%% svg.dtx  (with options: `package,body,extract')
+%% 
+%% svg-extract -- Extract independent graphic files from SVG pictures
+%% 
+%% Copyright (C) Philip Ilten <philten at cern.ch>, 2012-2016
+%% Copyright (C) Falk Hanisch <hanisch.latex at outlook.com>, 2017-
+%% 
+%% This file was generated from file svg.dtx.
+%% ----------------------------------------------------------------------------
+%% 
+%% 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}
+\ProvidesPackage{svg-extract}[%
+  2017/03/27 v2.00\space%
+  (extract independent graphics from SVG pictures)%
+]
+\RequirePackage{svg}[2017/03/27]
+\DefineFamily{SVG}
+\DefineFamilyMember{SVG}
+\newif\if at svgx@run
+\DefineFamilyKey{SVG}{extract}[true]{%
+  \lowercase{\def\svg at tempa{#1}}%
+  \FamilySetNumerical{SVG}{extract}{svg at tempa}{%
+    {false}{0},{off}{0},{no}{0},%
+    {true}{1},{on}{1},{yes}{1},{onlynewer}{1},{newer}{1},%
+    {overwrite}{1},{force}{1},{forced}{1},%
+    {pdf}{2},{eps}{3},{ps}{4}%
+  }{\svg at tempa}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% false
+      \@svgx at runfalse%
+    \or% true
+      \@svgx at runtrue%
+    \or% pdf
+      \FamilyOptions{SVG}{extractformat=pdf}%
+    \or% eps
+      \FamilyOptions{SVG}{extractformat=eps}%
+    \or% ps
+      \FamilyOptions{SVG}{extractformat=ps}%
+    \fi%
+  \fi%
+}
+\DeclareOption{on}{\FamilyOptions{SVG}{extract=true}}
+\DeclareOption{off}{\FamilyOptions{SVG}{extract=false}}
+\newcommand*\svgx at format{pdf}
+\ifxetex\else\ifpdf\else
+  \renewcommand*\svgx at format{eps}
+\fi\fi
+\DefineFamilyKey{SVG}{extractformat}{%
+  \lowercase{\edef\svgx at format{#1}}%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{pdf}[true]{%
+  \FamilySetBool{SVG}{pdf}{@svg at tempswa}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \if at svg@tempswa%
+      \svgx at ifinlist{pdf}{\svgx at format}{}{%
+        \edef\svgx at format{\svgx at format,pdf}%
+      }%
+      \svg at deprecated@key{pdf}{extractformat={\svgx at format}}%
+    \else%
+      \FamilyKeyStateUnknownValue
+    \fi%
+  \fi%
+}
+\DefineFamilyKey{SVG}{eps}[true]{%
+  \FamilySetBool{SVG}{eps}{@svg at tempswa}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \if at svg@tempswa%
+      \svgx at ifinlist{eps}{\svgx at format}{}{%
+        \edef\svgx at format{\svgx at format,eps}%
+      }%
+      \svg at deprecated@key{eps}{extractformat={\svgx at format}}%
+    \else%
+      \FamilyKeyStateUnknownValue
+    \fi%
+  \fi%
+}
+\newcommand*\svgx at preamble{\jobname.\svgx at latex@ext}%
+\DefineFamilyKey{SVG}{extractpreamble}{%
+  \renewcommand*\svgx at preamble{#1}%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{preamble}{%
+  \svg at deprecated@key[svg-extract]{preamble=#1}{extractpreamble=#1}%
+}
+\newcommand*\svgx at endpreamble{}
+\expandafter\def\expandafter\svgx at endpreamble\expandafter{%
+  \csname begin\endcsname{document}%
+}
+\DefineFamilyKey{SVG}{extractpreambleend}{%
+  \renewcommand*\svgx at endpreamble{#1}%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{end}{%
+  \svg at deprecated@key[svg-extract]{end=#1}{extractpreambleend=#1}%
+}
+\newcounter{svgx at runs}
+\DefineFamilyKey{SVG}{extractruns}{%
+  \FamilySetCounter{SVG}{extractruns}{svgx at runs}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifnum\value{svgx at runs}<\@ne\relax%
+      \PackageWarning{svg-extract}{%
+        The count for runs has to be at least one%
+      }%
+      \FamilySetCounter{SVG}{extractruns}{svgx at runs}{\@ne}%
+    \fi%
+  \fi%
+}
+\ifxetex
+  \newcommand*\svgx at latex@exe{xelatex}
+\else\ifluatex
+  \ifpdf
+    \newcommand*\svgx at latex@exe{lualatex}
+  \else
+    \newcommand*\svgx at latex@exe{lualatex --output-format=dvi}
+  \fi
+\else\ifpdf
+  \newcommand*\svgx at latex@exe{pdflatex}
+\else
+  \newcommand*\svgx at latex@exe{latex}
+\fi\fi\fi
+\DefineFamilyKey{SVG}{latexexe}{%
+  \renewcommand*\svgx at latex@exe{#1}%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{pdflatex}{%
+  \svg at deprecated@key[svg-extract]{pdflatex=#1}{latexexe=#1}%
+}
+\newcommand*\svgx at latex@ext{tex}
+\DefineFamilyKey{SVG}{latexext}{%
+  \renewcommand*\svgx at latex@ext{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at latex@opt{}
+\DefineFamilyKey{SVG}{latexopt}{%
+  \renewcommand*\svgx at latex@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at dvips@exe{dvips}
+\newcommand*\svgx at dvips@opt{}
+\DefineFamilyKey{SVG}{dvipsopt}{%
+  \renewcommand*\svgx at dvips@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at pstoeps@exe{ps2eps}
+\newcommand*\svgx at pstoeps@opt{-B -C}
+\DefineFamilyKey{SVG}{pstoepsopt}{%
+  \renewcommand*\svgx at pstoeps@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at pstopdf@exe{ps2pdf}
+\newcommand*\svgx at pstopdf@opt{}
+\DefineFamilyKey{SVG}{pstopdfopt}{%
+  \renewcommand*\svgx at pstopdf@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at pdftoeps@exe{pdftops -eps}
+\newcommand*\svgx at pdftoeps@opt{}
+\DefineFamilyKey{SVG}{pdftoepsopt}{%
+  \renewcommand*\svgx at pdftoeps@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at pdftops@exe{pdftops}
+\newcommand*\svgx at pdftops@opt{}
+\DefineFamilyKey{SVG}{pdftopsopt}{%
+  \renewcommand*\svgx at pdftops@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{pdftops}{%
+  \PackageWarning{#1}{%
+    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%
+  }%
+  \FamilyKeyStateProcessed
+}
+\newif\if at svgx@cnv at run
+\newcommand*\svgx at cnv@cmd{}
+\DefineFamilyKey{SVG}{convert}[true]{%
+  \FamilySetNumerical{SVG}{convert}{svg at tempa}{%
+    {false}{0},{off}{0},{no}{0},%
+    {true}{1},{on}{1},{yes}{1},{onlynewer}{1},{newer}{1},%
+    {overwrite}{1},{force}{1},{forced}{1},%
+    {magick}{2},{imagemagick}{2},{convert}{2},%
+    {gs}{3},{ghostscript}{3},%
+    {gs64}{4},{ghostscript64}{4},%
+    {gs32}{5},{ghostscript32}{5}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% false
+      \@svgx at cnv@runfalse%
+    \or% true
+      \@svgx at cnv@runtrue%
+    \or% magick
+      \@svgx at cnv@runtrue%
+      \renewcommand*\svgx at cnv@cmd{\svgx at magick@cmd}%
+    \or% gs
+      \@svgx at cnv@runtrue%
+      \renewcommand*\svgx at cnv@cmd{\svgx at gs@cmd}%
+    \or% gs64
+      \@svgx at cnv@runtrue%
+      \renewcommand*\svgx at cnv@cmd{\svgx at gs@cmd}%
+      \svgx at onlywindows{%
+        \renewcommand*\svgx at gs@exe{gswin64c}%
+      }%
+    \or% gs32
+      \@svgx at cnv@runtrue%
+      \renewcommand*\svgx at cnv@cmd{\svgx at gs@cmd}%
+      \svgx at onlywindows{%
+        \renewcommand*\svgx at gs@exe{gswin32c}%
+      }%
+    \fi%
+  \else%
+    \def\svg at tempa##1-##2\@nil{%
+      \IfArgIsEmpty{##2}{\def\svg at tempb{}}{%
+        \def\svg at tempa##1####1\@nil{\def\svg at tempb{####1}}%
+        \svg at tempa#1\@nil%
+      }%
+      \def\svg at tempa{##1}%
+    }%
+    \svg at tempa#1-\@nil%
+    \PackageWarning{svg-extract}{%
+      Setting the executable%
+      \ifx\svg at tempb\@empty\else%
+        \space and associated options%
+      \fi%
+      \MessageBreak%
+      for ImageMagick should be done with options\MessageBreak%
+      `magickexe=\svg at tempa'%
+      \ifx\svg at tempb\@empty\else%
+        \MessageBreak and `magicksetting' and/or `magickoperator'%
+      \fi.\MessageBreak%
+      Nevertheless, this was done by now%
+      \ifx\svg at tempb\@empty\else%
+        , whereby \MessageBreak `magicksetting=\svg at tempb' was used%
+      \fi%
+    }%
+    \FamilyOptions{SVG}{convert=magick}%
+    \edef\svg at tempa{%
+      \noexpand\FamilyOptions{SVG}{magickexe=\svg at tempa}%
+      \ifx\svg at tempb\@empty\else%
+        \noexpand\FamilyOptions{SVG}{magicksetting=\svg at tempb}%
+      \fi%
+    }%
+    \svg at tempa%
+  \fi%
+}
+\newcommand*\svgx at cnv@format{png}
+\DefineFamilyKey{SVG}{convertformat}{%
+  \lowercase{\edef\svgx at cnv@format{#1}}%
+  \ifx\svgx at cnv@format\@empty\else%
+    \@svgx at cnv@runtrue%
+  \fi%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{png}[true]{%
+  \FamilySetBool{SVG}{png}{@svg at tempswa}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \if at svg@tempswa%
+      \svgx at ifinlist{png}{\svgx at cnv@format}{}{%
+        \edef\svgx at cnv@format{\svgx at cnv@format,png}%
+      }%
+      \svg at deprecated@key{png}{convertformat={\svgx at cnv@format}}%
+    \else%
+      \FamilyKeyStateUnknownValue
+    \fi%
+  \fi%
+}
+\newcommand*\svgx at cnv@dpi{}
+\let\svgx at cnv@dpi\relax
+\DefineFamilyKey{SVG}{convertdpi}{%
+  \FamilyKeyStateUnknownValue%
+  \svgx at ifkeyandval{#1}{%
+    \svgx at cnv@get at dpi{##2}%
+    \ifx\svg at tempa\relax\else%
+      \expandafter\edef\csname svgx at cnv@dpi@##1\endcsname{\svg at tempa}%
+      \FamilyKeyStateProcessed%
+    \fi%
+  }{%
+    \svgx at cnv@get at dpi{##1}%
+    \ifx\svg at tempa\relax\else%
+      \edef\svgx at cnv@dpi{\svg at tempa}%
+      \FamilyKeyStateProcessed%
+    \fi%
+  }%
+}
+\DefineFamilyKey{SVG}{convertdensity}{\FamilyOptions{SVG}{convertdpi=#1}}
+\newcommand*\svgx at magick@exe{}
+\DefineFamilyKey{SVG}{magickexe}{%
+  \renewcommand*\svgx at magick@exe{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at magick@set{}
+\DefineFamilyKey{SVG}{magicksetting}{%
+  \svgx at setformatkey{#1}{svgx at magick@set}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at magick@opr{}
+\DefineFamilyKey{SVG}{magickoperator}{%
+  \svgx at setformatkey{#1}{svgx at magick@opr}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at gs@exe{}
+\DefineFamilyKey{SVG}{gsexe}{%
+  \renewcommand*\svgx at gs@exe{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at gs@opt{}
+\DefineFamilyKey{SVG}{gsopt}{%
+  \svgx at setformatkey{#1}{svgx at gs@opt}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at gs@device{}
+\DefineFamilyKey{SVG}{gsdevice}{%
+  \svgx at setformatkey{#1}{svgx at gs@device}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at out@path{}
+\DefineFamilyKey{SVG}{extractpath}{%
+  \FamilySetNumerical{SVG}{extractpath}{svg at tempa}{%
+    {svgpath}{0},{svgdir}{0},%
+    {svgsubpath}{1},{svgsubdir}{1},%
+    {basepath}{2},{basedir}{2},{jobpath}{2},{jobdir}{2},%
+    {basesubpath}{3},{basesubdir}{3},{jobsubpath}{3},{jobsubdir}{3}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% svgpath
+      \renewcommand*\svgx at out@path{\svg at file@path}%
+    \or% svgsubpath
+      \renewcommand*\svgx at out@path{\svg at file@path svg-extract/}%
+    \or% basepath
+      \renewcommand*\svgx at out@path{./}%
+    \or% basesubpath
+      \renewcommand*\svgx at out@path{./svg-extract/}%
+    \fi%
+  \else%
+    \renewcommand*\svgx at out@path{#1}%
+    \svg at normalize@path{\svgx at out@path}%
+    \FamilyKeyStateProcessed%
+  \fi%
+}
+\DefineFamilyKey{SVG}{path}{%
+  \svg at deprecated@key[svg-extract]{path=#1}{extractpath=#1}%
+}
+\newcounter{svgx at out@count}
+\newcommand*\svgx at out@name{}
+\newif\if at svgx@out at sec
+\DefineFamilyKey{SVG}{extractname}{%
+  \FamilySetNumerical{SVG}{extractname}{svg at tempa}{%
+    {filename}{0},{name}{0},%
+    {filenamenumbered}{1},{namenumbered}{1},%
+    {numberedfilename}{1},{numberedname}{1},%
+    {numbered}{2},{section}{2},{numberedsection}{2},{sectionnumbered}{2}%
+  }{#1}%
+  \@svgx at out@secfalse%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% filename
+      \renewcommand*\svgx at out@name{\svg at out@name-extract}%
+    \or% filenamenumbered
+      \renewcommand*\svgx at out@name{\the\value{svgx at out@count}-\svg at out@name}%
+    \or% numbered
+      \renewcommand*\svgx at out@name{\the\value{svgx at out@count}-\svgx at out@sec}%
+      \@svgx at out@sectrue%
+    \fi%
+  \else%
+    \def\svg at tempa##1.##2\@nil{%
+      \IfArgIsEmpty{##1}{}{\renewcommand*\svgx at out@name{##1}}%
+    }%
+    \svg at tempa#1.\@nil%
+    \FamilyKeyStateProcessed%
+  \fi%
+}
+\DefineFamilyKey{SVG}{name}{%
+  \svg at deprecated@key[svg-extract]{name=#1}{extractname=#1}%
+}
+\newcommand*\svgx at param@width{\svg at param@width}
+\DefineFamilyKey{SVG}{extractwidth}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \renewcommand*\svgx at param@width{\z@}%
+    \FamilyKeyStateProcessed%
+  }{%
+    \ifstr{#1}{inherit}{%
+      \renewcommand*\svgx at param@width{\svg at param@width}%
+      \FamilyKeyStateProcessed%
+    }{%
+      \FamilySetLengthMacro{SVG}{extractwidth}{\svgx at param@width}{#1}%
+      \ifdim\svgx at param@width<\z@\relax%
+        \FamilyKeyStateUnknownValue%
+      \fi%
+    }%
+  }%
+}
+\newcommand*\svgx at param@height{\svg at param@height}
+\DefineFamilyKey{SVG}{extractheight}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \renewcommand*\svgx at param@height{\z@}%
+    \FamilyKeyStateProcessed%
+  }{%
+    \ifstr{#1}{inherit}{%
+      \renewcommand*\svgx at param@height{\svg at param@height}%
+      \FamilyKeyStateProcessed%
+    }{%
+      \FamilySetLengthMacro{SVG}{extractheight}{\svgx at param@height}{#1}%
+      \ifdim\svgx at param@height<\z@\relax%
+        \FamilyKeyStateUnknownValue%
+      \fi%
+    }%
+  }%
+}
+\newcommand*\svgx at param@scale{\svg at param@scale}
+\DefineFamilyKey{SVG}{extractscale}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \renewcommand*\svgx at param@scale{1}%
+    \FamilyKeyStateProcessed%
+  }{%
+    \ifstr{#1}{inherit}{%
+      \renewcommand*\svgx at param@scale{\svg at param@scale}%
+      \FamilyKeyStateProcessed%
+    }{%
+      \ifisdimension{#1\p@}{%
+        \ifdim\dimexpr#1\p@\relax>\z@\relax%
+          \renewcommand*\svgx at param@scale{#1}%
+          \FamilyKeyStateProcessed%
+        \fi%
+      }{}%
+    }%
+  }%
+}
+\newcommand*\svgx at param@pretex{\svg at param@pretex}
+\DefineFamilyKey{SVG}{extractpretex}{%
+  \svg at ifvalueisrelax{#1}{%
+    \let\svgx at param@pretex\relax%
+  }{%
+    \ifstr{#1}{inherit}{%
+      \def\svgx at param@pretex{\svg at param@pretex}%
+    }{%
+      \def\svgx at param@pretex{#1}%
+    }%
+  }%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svgx at param@apptex{\svg at param@apptex}
+\DefineFamilyKey{SVG}{extractapptex}{%
+  \svg at ifvalueisrelax{#1}{%
+    \let\svgx at param@apptex\relax%
+  }{%
+    \ifstr{#1}{inherit}{%
+      \def\svgx at param@apptex{\svg at param@apptex}%
+    }{%
+      \def\svgx at param@apptex{#1}%
+    }%
+  }%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{extractpostex}{%
+  \svg at deprecated@key[svg-extract]{extractpostex=#1}{extractapptex=#1}%
+}
+\newcommand*\svgx at clean{}
+\DefineFamilyKey{SVG}{clean}[true]{%
+  \FamilySetBool{SVG}{clean}{@svg at tempswa}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \if at svg@tempswa%
+      \renewcommand*\svgx at clean{log,aux,dvi,out,ps,eps,pdf,\svgx at latex@ext}%
+    \else%
+      \renewcommand*\svgx at clean{}%
+    \fi%
+  \else%
+    \renewcommand*\svgx at clean{#1}%
+    \FamilyKeyStateProcessed%
+  \fi%
+}
+\DefineFamilyKey{SVG}{clear}{\FamilyOptions{SVG}{clean=#1}}
+\DefineFamilyKey{SVG}{exclude}[true]{%
+  \FamilySetBool{SVG}{exclude}{@svg at tempswa}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \if at svg@tempswa%
+      \renewcommand*\svg at input[2][]{%
+        \if at svgx@run\else%
+          \PackageWarning{svg-extract}{%
+            The image `##2' was\MessageBreak%
+            neither extracted nor included%
+          }%
+        \fi%
+      }%
+    \else%
+      \renewcommand*\svg at input{\svg@@input}%
+    \fi%
+  \fi%
+}
+\newcommand*\svgx at ifinlist[2]{%
+  \begingroup%
+    \def\svg at tempa##1,#1,##2\@nil{%
+      \IfArgIsEmpty{##2}{%
+        \aftergroup\@secondoftwo%
+      }{%
+        \aftergroup\@firstoftwo%
+      }%
+    }%
+    \expandafter\svg at tempa\expandafter,#2,#1,\@nil%
+  \endgroup%
+}
+\newcommand*\svgx at onlywindows[1]{}
+\AfterPackage*{ifplatform}{\renewcommand*\svgx at onlywindows[1]{\ifwindows#1\fi}}
+\newcommand*\svgx at ifkeyandval[3]{%
+  \def\svg at tempa##1=##2=##3\@nil{\ifstr{##3}{=}{#2}{#3}}%
+  \svg at tempa#1==\@nil%
+}
+\newcommand*\svgx at cnv@get at dpi[1]{%
+  \begingroup%
+    \def\svg at tempa##1dpi##2x##3dpi##4\@nil{%
+      \edef\svg at tempa{##1}%
+      \@svg at tempswafalse%
+      \ifnumber{##1}{%
+        \IfArgIsEmpty{##3}{\@svg at tempswatrue}{%
+          \ifnumber{##3}{\edef\svg at tempa{##1x##3}}{}%
+        }%
+      }{}%
+      \if at svg@tempswa\else%
+        \expandafter\svg at tempb\svg at tempa xx\@nil%
+      \fi%
+    }%
+    \def\svg at tempb##1x##2x##3\@nil{%
+      \ifstr{##3}{x}{%
+        \@svg at tempswatrue%
+        \IfArgIsEmpty{##1}{\@svg at tempswafalse}{%
+          \ifnumber{##1}{}{\@svg at tempswafalse}%
+        }%
+        \IfArgIsEmpty{##2}{\@svg at tempswafalse}{%
+          \ifnumber{##2}{}{\@svg at tempswafalse}%
+        }%
+        \if at svg@tempswa%
+          \edef\svg at tempa{##1x##2}%
+        \fi%
+      }{}%
+    }%
+    \IfArgIsEmpty{#1}{%
+      \let\svg at tempa\@empty%
+    }{%
+      \lowercase{\svg at tempa#1dpi#1xdpi\@nil}%
+      \if at svg@tempswa\else%
+        \let\svg at tempa\relax%
+      \fi%
+    }%
+    \edef\svg at tempb{%
+      \noexpand\endgroup%
+      \ifx\svg at tempa\relax%
+        \noexpand\let\noexpand\svg at tempa\noexpand\relax%
+      \else%
+        \noexpand\def\noexpand\svg at tempa{\svg at tempa}%
+      \fi%
+    }%
+  \svg at tempb%
+}
+\newcommand*\svgx at setformatkey[2]{%
+  \svgx at ifkeyandval{#1}{%
+    \svg at ifvalueisrelax{##2}{%
+      \expandafter\let\csname #2@##1\endcsname\relax%
+    }{%
+      \@namedef{#2@##1}{##2}%
+    }%
+  }{%
+    \svg at ifvalueisrelax{##1}{%
+      \expandafter\let\csname #2\endcsname\relax%
+    }{%
+      \@namedef{#2}{##1}%
+    }%
+  }%
+}
+\newcommand*\svgx at useformatkey[3]{%
+  \scr at ifundefinedorrelax{#1@#2}{%
+    \scr at ifundefinedorrelax{#1}{}{%
+      \expandafter\ifx\csname #1\endcsname\@empty\else%
+        #3\@nameuse{#1}\space%
+      \fi%
+    }%
+    \scr at 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%
+  }%
+}
+\newbox\svgx at box
+\newcommand*\svgxsetbox[2][]{%
+  \sbox\svgx at box{\svg@@input[{#1},draft=false]{#2}}%
+  \csname @tud at x@standalone at croptrue\endcsname%
+  \svgxsetpapersize%
+}
+\newcommand*\svgxsetpapersize{%
+  \setlength\paperwidth{\the\wd\svgx at box}%
+  \ifx\stockwidth\@undefined\else%
+    \setlength\stockwidth{\paperwidth}%
+  \fi%
+  \ifx\mediawidth\@undefined\else%
+    \setlength\mediawidth{\paperwidth}%
+  \fi%
+  \setlength\textwidth{\paperwidth}%
+  \setlength\paperheight{\the\dimexpr\ht\svgx at box+\dp\svgx at box\relax}%
+  \ifx\stockheight\@undefined\else%
+    \setlength\stockheight{\paperheight}%
+  \fi%
+  \ifx\mediaheight\@undefined\else%
+    \setlength\mediaheight{\paperheight}%
+  \fi%
+  \setlength\textheight{\paperheight}%
+  \hoffset=-1in%
+  \oddsidemargin=\z@%
+  \evensidemargin=\z@%
+  \voffset=-1in%
+  \topmargin=\z@%
+  \headheight=\z@%
+  \headsep=\z@%
+  \topskip=\z@%
+  \footskip=\z@%
+  \marginparsep=\z@%
+  \marginparwidth=\z@%
+  \marginparpush=\z@%
+}
+\@onlypreamble\svgxsetpapersize
+\newif\if at svgx@beamer
+\@ifclassloaded{beamer}{\@svgx at beamertrue}{}%
+\newcommand*\svgxoutputbox{%
+  \begingroup%
+    \setlength\parindent{\z@}%
+    \setlength\parskip{\z@}%
+    \setlength\parfillskip{\z@}%
+    \if at svgx@beamer%
+      \setbeamertemplate{navigation symbols}{}%
+      \begin{frame}[plain]%
+      \usebox\svgx at box%
+      \end{frame}%
+    \else%
+      \usebox\svgx at box%
+    \fi%
+    \endgraf%
+  \endgroup%
+}
+\FamilyExecuteOptions{SVG}{%
+  extract=true,extractpath=basesubdir,extractruns=2,extractname=namenumbered,%
+  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}
+\let\svghidepreamblestart\relax
+\let\svghidepreambleend\relax
+\ifnum\pdf at shellescape=\@ne\relax\else%
+  \renewcommand*\svg at extract[1]{%
+    \if at svgx@run%
+      \begingroup%
+        \edef\svg at tempa{#1}%
+        \svg at quotes@remove{\svg at tempa}%
+        \PackageWarning{svg-extract}{%
+          You didn't enable `shell escape' (or `write18')\MessageBreak%
+          so it wasn't possible to run the extraction for\MessageBreak%
+          file `\svg at tempa'%
+        }%
+      \endgroup%
+    \fi%
+  }%
+  \expandafter\endinput%
+\fi
+\newread\svgx at stream@in
+\newcommand*\svgx at read@line{}
+\newwrite\svgx at stream@out
+\newif\if at svgx@preamble at write
+\renewcommand*\svg at extract[1]{%
+  \if at svgx@run%
+    \if at svgx@out at sec%
+      \svgx at get@out at sec%
+    \fi%
+    \stepcounter{svgx at out@count}%
+    \begingroup%
+      \def\svg at tempa##1.##2\@nil{%
+        \IfArgIsEmpty{##2}{\edef\svgx at preamble{##1.\svgx at latex@ext}}{}%
+      }%
+      \expandafter\svg at tempa\svgx at preamble.\@nil%
+      \IfFileExists{\svg at file@path\svgx at preamble}{%
+        \@svg at file@foundtrue%
+      }{%
+        \svg at get@path[]{\svgx at preamble}{\svg at out@path}%
+        \def\svg at tempa####1.####2\@nil{%
+          \edef\svgx at preamble{\svg at file@name.####2}%
+        }%
+        \expandafter\svg at tempa\svgx at preamble\@nil%
+      }%
+      \edef\svg at tempa{%
+        \endgroup%
+        \if at svg@file at found%
+          \ifx\svg at file@path\@empty%
+            \def\noexpand\svgx at preamble{./\svgx at preamble}%
+          \else%
+            \def\noexpand\svgx at preamble{\svg at file@path\svgx at preamble}%
+          \fi%
+        \fi%
+      }%
+    \svg at tempa%
+    \begingroup%
+      \endlinechar=\m at ne%
+      \IfFileExists{\svgx at preamble}{%
+        \PackageInfo{svg-extract}{%
+          The preamble file `\svgx at preamble'\MessageBreak%
+          is used for the generation of the auxiliary file\MessageBreak%
+          `\svgx at out@name.\svgx at latex@ext'%
+        }%
+        \catcode`\#=12\relax%
+        \immediate\openout\svgx at stream@out=\svgx at out@name.\svgx at latex@ext%
+        \immediate\openin\svgx at stream@in=\svgx at preamble%
+        \@svg at tempswatrue%
+        \@svgx at preamble@writetrue%
+        \def\svgx at read@line{}%
+        \@whilesw\if at svg@tempswa\fi{%
+          \immediate\read\svgx at stream@in to\svgx at read@line%
+          \ifx\svgx at read@line\@empty%
+            \ifeof\svgx at stream@in\@svg at tempswafalse\fi%
+          \else%
+            \svgx at read@preamble at till{\svghidepreamblestart}{}%
+            \svgx at read@preamble at from{\svghidepreambleend}{}%
+            \svgx at read@preamble at till{\svgx at endpreamble}{\@svg at tempswafalse}%
+            \if at svgx@preamble at write%
+              \if at svgx@classfound\else%
+                \expandafter\svgx at documentclass%
+                  \svgx at read@line\documentclass\documentclass\@nil%
+              \fi%
+              \ifx\svgx at read@line\@empty\else%
+                \immediate\write\svgx at stream@out{%
+                  \unexpanded\expandafter{\svgx at read@line}%
+                }%
+              \fi%
+            \fi%
+          \fi%
+        }%
+        \immediate\closein\svgx at stream@in%
+        \immediate\closeout\svgx at stream@out%
+        \catcode`\#=6\relax%
+        \immediate\openin\svgx at stream@in=\svgx at out@name.\svgx at latex@ext%
+        \def\svg at tempa{}%
+        \loop\unless\ifeof\svgx at stream@in%
+          \readline\svgx at stream@in to\svgx at read@line%
+          \ifx\svgx at read@line\@empty\else%
+            \edef\svg at tempa{%
+              \unexpanded\expandafter{\svg at tempa}%
+              \unexpanded\expandafter{\svgx at read@line}^^J%
+            }%
+          \fi%
+        \repeat%
+        \immediate\closein\svgx at stream@in%
+      }{%
+        \svg at quotes@remove{\svgx at preamble}%
+        \ifx\svgx at preamble\@empty\else%
+          \PackageWarning{svg-extract}{%
+            The preamble file `\svgx at preamble'\MessageBreak%
+            does not exist%
+          }%
+        \fi%
+        \def\svg at tempa{}%
+      }%
+      \immediate\openout\svgx at stream@out=\svgx at out@name.\svgx at latex@ext%
+      \immediate\write\svgx at stream@out{%
+        \@percentchar\@percentchar\space This file was generated by package
+        `svg-extract'^^J%
+        \@percentchar\@percentchar\space from source `\jobname'^^J%
+        \@percentchar\@percentchar\space It's intended to be compiled with
+        `\svgx at latex@exe\ifx\svgx at latex@opt\@empty\else\space\svgx at latex@opt\fi'
+      }%
+      \immediate\write\svgx at stream@out{%
+        \string\AtBeginDocument{\@percentchar^^J%
+          \space\space\string\svgxsetpapersize\@percentchar^^J%
+          \ifxetex\else\ifpdf\else%
+            \space\space\string\AtBeginDvi{\string\special{%
+                papersize=\string\the\string\paperwidth,%
+                  \string\the\string\paperheight%
+            }}\@percentchar^^J%
+          \fi\fi%
+        }^^J%
+        \string\PassOptionsToPackage{hidelinks}{hyperref}%
+      }%
+      \if at svgx@classfound\else%
+        \immediate\write\svgx at stream@out{\string\documentclass{article}}%
+      \fi%
+      \ifx\svg at tempa\@empty\else%
+        \immediate\write\svgx at stream@out{\unexpanded\expandafter{\svg at tempa}}%
+      \fi%
+      \immediate\write\svgx at stream@out{\string\usepackage{svg-extract}}%
+      \def\svg at tempa##1{%
+        \immediate\write\svgx at stream@out{\string\svgsetup{##1}}%
+      }%
+      \if at svg@ink at latex\else%
+        \svg at tempa{inkscapelatex=false}%
+      \fi%
+      \ifdim\svgx at param@width>\z@\relax%
+        \svg at tempa{width=\svgx at param@width}%
+      \fi%
+      \ifdim\svgx at param@height>\z@\relax%
+        \svg at tempa{height=\svgx at param@height}%
+      \fi%
+      \ifdim\dimexpr\svgx at param@scale\p@\relax=\p@\relax\else%
+        \svg at tempa{scale=\svgx at param@scale}%
+      \fi%
+      \def\svg at tempb{\svg at param@pretex}%
+      \ifx\svgx at param@pretex\svg at tempb\relax%
+        \let\svgx at param@pretex\svg at param@pretex%
+      \fi%
+      \ifx\svgx at param@pretex\relax\else%
+        \svg at tempa{pretex=\unexpanded\expandafter{\svgx at param@pretex}}%
+      \fi%
+      \def\svg at tempb{\svg at param@apptex}%
+      \ifx\svgx at param@apptex\svg at tempb\relax%
+        \let\svgx at param@apptex\svg at param@apptex%
+      \fi%
+      \ifx\svgx at param@apptex\relax\else%
+        \svg at tempa{apptex=\unexpanded\expandafter{\svgx at param@apptex}}%
+      \fi%
+      \let\svg at tempa\@empty%
+      \if at svg@ink at latex%
+        \ifstr{\svg at ink@format}{pdf}{%
+          \ifnum\value{svg at param@lastpage}>\z@\relax%
+            \edef\svg at tempa{lastpage=\the\value{svg at param@lastpage}}%
+          \else%
+            \ifnum\value{svg at param@lastpage}=\z@\relax%
+              \def\svg at tempa{lastpage=true}%
+            \else%
+              \def\svg at tempa{lastpage=false}%
+            \fi%
+          \fi%
+        }{}%
+      \fi%
+      \ifx\svg at tempa\@empty%
+        \def\svg at tempa{\string\svgxsetbox{#1}}%
+      \else%
+        \edef\svg at tempa{\noexpand\string\noexpand\svgxsetbox[\svg at tempa]{#1}}%
+      \fi%
+      \immediate\write\svgx at stream@out{\svg at tempa}%
+      \if at svg@ink at latex%
+        \IfFileExists{xr.sty}{%
+          \immediate\write\svgx at stream@out{%
+            \string\usepackage{xr}^^J%
+            \string\externaldocument{\jobname}^^J%
+          }%
+        }{}%
+      \fi%
+      \immediate\write\svgx at stream@out{%
+        \string\AtBeginDocument{\@percentchar^^J%
+          \space\space\svg at tempa\@percentchar^^J%
+        }^^J^^J%
+        \string\begin{document}^^J%
+        \string\pagestyle{empty}^^J%
+        \string\svgxoutputbox\@percentchar^^J%
+        \string\end{document}%
+      }%
+      \immediate\closeout\svgx at stream@out%
+    \endgroup%
+    \ifstr{\svgx at format\svgx at cnv@format}{}{%
+      \PackageWarning{svg-extract}{%
+        Both keys `extractformat' and `convertformat' are\MessageBreak%
+        empty, so nothing to do so far%
+      }%
+    }{%
+      \svg at quotes@remove{\svgx at out@path}%
+      \svg at quotes@remove{\svgx at out@name}%
+      \edef\svg at tempb{%
+        \noexpand\svg at shell@mkdir{\svgx at out@path}%
+      }%
+      \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+      \edef\svg at tempb{%
+        \noexpand\PackageInfo{svg-extract}{%
+          Running LaTeX (\svgx at latex@exe) for graphic extraction%
+          \ifx\svgx at latex@opt\@empty\else%
+            \MessageBreak with added options `\svgx at latex@opt'%
+          \fi%
+        }%
+      }%
+      \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+      \edef\svg at tempb{%
+        \noexpand\ShellEscape{%
+          \svgx at latex@exe\space\svgx at latex@opt\space%
+          "\svgx at out@name.\svgx at latex@ext"%
+        }%
+      }%
+      \loop\ifnum\value{svgx at runs}>\z@\relax%
+        \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+        \advance\c at svgx@runs\m at ne%
+      \repeat%
+      \def\svg at tempa##1##2##3{%
+        \edef\svg at tempb{%
+          \noexpand\ShellEscape{%
+            \@nameuse{svgx@##1 at exe}\space\@nameuse{svgx@##1 at opt}\space%
+            "\svgx at out@name.##2"%
+          }%
+        }%
+        \AfterReadingMainAux{\PackageInfo{svg-extract}{Running ##1}}%
+        \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+      }%
+      \@svg at tempswafalse%
+      \ifxetex\else\ifpdf\else%
+        \@svg at tempswatrue%
+      \fi\fi%
+      \if at svg@tempswa%
+        \svg at tempa{dvips}{dvi}{ps}%
+        \svgx at ifinlist{eps}{\svgx at format}{\svg at tempa{pstoeps}{ps}{eps}}{}%
+        \svgx at ifinlist{pdf}{\svgx at format}{\svg at tempa{pstopdf}{ps}{pdf}}{}%
+      \else%
+        \svgx at ifinlist{eps}{\svgx at format}{\svg at tempa{pdftoeps}{pdf}{eps}}{}%
+        \svgx at ifinlist{ps}{\svgx at format}{\svg at tempa{pdftops}{pdf}{ps}}{}%
+      \fi%
+      \if at svgx@cnv at run%
+        \ifx\svgx at cnv@dpi\relax%
+          \ifx\svgx at cnv@dpi at png\@undefined%
+            \def\svgx at cnv@dpi at png{300}%
+          \fi%
+        \fi%
+        \expandafter\svgx at cnv@get at informat\expandafter{\svgx at format}%
+        \@for\svg at tempa:=\svgx at cnv@format\do{%
+          \ifx\svg at tempa\@empty\else%
+            \expandafter\svgx at ifinlist\expandafter{\svg at tempa}{\svgx at format}{%
+              \PackageWarning{svg-extract}{%
+                File type `\svg at tempa' was specified for option\MessageBreak%
+                `extractformat' (\svgx at format) as well as for \MessageBreak
+                option `convertformat' (\svgx at cnv@format) so the\MessageBreak%
+                conversion won't be done%
+              }%
+            }{%
+              \edef\svg at tempb{%
+                \noexpand\PackageInfo{svg-extract}{%
+                  Converting `\svgx at out@name.\svgx at cnv@informat'\MessageBreak%
+                  to `\svgx at out@name.\svg at tempa'%
+                }%
+              }%
+              \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+              \edef\svg at tempb{%
+                \noexpand\ShellEscape{%
+                  \svgx at cnv@cmd{\svgx at out@name}{\svgx at cnv@informat}{\svg at tempa}%
+                }%
+              }%
+              \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+            }%
+          \fi%
+        }%
+      \fi%
+      \edef\svg at tempa{\svgx at format\if at svgx@cnv at run,\svgx at cnv@format\fi}%
+      \@for\svg at tempb:=\svg at tempa\do{%
+        \ifx\svg at tempb\@empty\else%
+          \edef\svg at tempb{%
+            \noexpand\svgx at move{\svgx at out@name}{\svg at tempb}{\svgx at out@path}%
+          }%
+          \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+        \fi%
+      }%
+      \@for\svg at tempa:=\svgx at clean\do{%
+        \expandafter\svgx at ifinlist\expandafter{\svg at tempa}{\svg at tempb}{}{%
+          \edef\svg at tempb{%
+            \noexpand\IfFileExists{"\svgx at out@name".\svg at tempa}{%
+              \noexpand\svg at shell@rm{\svgx at out@name.\svg at tempa}%
+            }{}%
+          }%
+          \expandafter\AtEndDocument\expandafter{%
+            \expandafter\AfterReadingMainAux\expandafter{\svg at tempb}%
+          }%
+        }%
+      }%
+    }%
+  \fi%
+}
+\newcommand*\svgx at out@sec{unknown}
+\newcommand*\svgx at get@out at sec{%
+  \begingroup%
+    \def\svg at tempa{}%
+    \@for\svg at tempb:={%
+      part,chapter,section,subsection,subsubsection,paragraph,subparagraph%
+    }\do{%
+      \ifx\svg at tempb\@empty\else%
+        \scr at ifundefinedorrelax{the\svg at tempb}{}{%
+          \ifnum\value{\svg at tempb}>\z@\relax%
+            \edef\svg at tempa{\svg at tempb}%
+          \fi%
+        }%
+      \fi%
+    }%
+    \edef\svg at tempb{%
+      \endgroup%
+      \ifx\svg at tempa\@empty\else%
+        \def\noexpand\svgx at out@sec{\csname the\svg at tempa\endcsname}%
+      \fi%
+    }%
+  \svg at tempb%
+}
+\newif\if at svgx@classfound
+\newcommand*\svgx at documentclass{}
+\def\svgx at documentclass#1\documentclass#2\documentclass#3\@nil{%
+  \IfArgIsEmpty{#2}{}{\@svgx at classfoundtrue}%
+}
+\newcommand*\svgx at read@preamble at till[2]{%
+  \svgx at read@preamble at skip#1\@nil{till}{#2}%
+}
+\newcommand*\svgx at read@preamble at from[2]{%
+  \svgx at read@preamble at skip#1\@nil{from}{#2}%
+}
+\newcommand*\svgx at read@preamble at skip{}
+\def\svgx at read@preamble at skip#1\@nil#2#3{%
+  \def\svg at tempa##1{%
+    \def\svg at tempa####1##1####2##1####3\@nil{%
+      \IfArgIsEmpty{####3}{}{%
+        \ifstr{#2}{till}{%
+          \IfArgIsEmpty{####1}{}{%
+            \immediate\write\svgx at stream@out{####1}%
+          }%
+          \@svgx at preamble@writefalse%
+        }{%
+          \ifstr{#2}{from}{%
+            \IfArgIsEmpty{####2}{%
+              \def\svgx at read@line{}%
+            }{%
+              \def\svgx at read@line{####2}%
+            }%
+            \@svgx at preamble@writetrue%
+          }{}%
+        }%
+        #3%
+      }%
+    }%
+  }%
+  \edef\svg at tempb{\expandafter\detokenize\expandafter{#1}}%
+  \expandafter\svg at tempa\expandafter{\svg at tempb}%
+  \edef\svg at tempb{%
+    \expandafter\detokenize\expandafter{\svgx at read@line}\svg at tempb\svg at tempb%
+  }%
+  \expandafter\svg at tempa\svg at tempb\@nil%
+}
+\newcommand*\svgx at cnv@informat{}
+\newcommand*\svgx at cnv@get at informat[1]{%
+  \begingroup%
+    \def\svg at tempa##1,##2\@nil{%
+      \def\svg at tempa{##1}%
+    }%
+    \svg at tempa#1,\@nil%
+    \edef\svg at tempa{%
+      \noexpand\endgroup%
+      \noexpand\def\noexpand\svgx at cnv@informat{\svg at tempa}%
+    }%
+  \svg at tempa%
+  \ifx\svgx at cnv@informat\@empty%
+    \renewcommand*\svgx at cnv@informat{pdf}%
+    \ifxetex\else\ifpdf\else%
+      \renewcommand*\svgx at cnv@informat{ps}%
+    \fi\fi%
+  \fi%
+}
+\ifx\svgx at magick@exe\@empty
+  \ifwindows
+    \renewcommand*\svgx at magick@exe{magick}
+  \else
+    \renewcommand*\svgx at magick@exe{convert}
+  \fi
+\fi
+\newcommand*\svgx at magick@cmd[3]{%
+  \svgx at magick@exe\space%
+  \svgx at useformatkey{svgx at cnv@dpi}{#3}{-density }%
+  \svgx at useformatkey{svgx at magick@set}{#3}{}%
+  "#1.#2"\space%
+  \svgx at useformatkey{svgx at magick@opr}{#3}{}%
+  "#1.#3"%
+}
+\ifx\svgx at gs@exe\@empty
+  \ifwindows
+    \renewcommand*\svgx at gs@exe{gswin64c}
+  \else
+    \renewcommand*\svgx at gs@exe{gs}
+  \fi
+\fi
+\newcommand*\svgx at gs@cmd[3]{%
+  \svgx at gs@exe\space-dSAFER -dBATCH -dNOPAUSE\space%
+  \svgx at useformatkey{svgx at gs@device}{#3}{-sDEVICE=}%
+  \svgx at useformatkey{svgx at cnv@dpi}{#3}{-r}%
+  \svgx at useformatkey{svgx at gs@opt}{#3}{}%
+  -sOutputFile="#1.#3"\space"#1.#2"%
+}
+\newcommand*\svgx at move[3]{%
+  \begingroup%
+    \IfFileExists{"#1".#2}{%
+      \svg at shell@move{#1.#2}{#3#1.#2}%
+    }{%
+      \edef\svg at tempa{#2}%
+      \@svg at tempswafalse%
+      \expandafter\svgx at ifinlist\expandafter{\svg at tempa}{\svgx at cnv@format}{%
+        \@svg at tempswatrue%
+        \def\svg at tempb{conversion}%
+      }{%
+        \expandafter\svgx at ifinlist\expandafter{\svg at tempa}{pdf,ps,eps}{%
+          \@svg at tempswatrue%
+          \def\svg at tempb{extraction}%
+        }{}%
+      }%
+      \if at svg@tempswa%
+        \edef\svg at tempb{%
+          The graphic file \svg at tempb\space failed\MessageBreak%
+          for `#1.#2'\MessageBreak%
+          Troubleshooting: Please check the log file how the\MessageBreak%
+          invocation of the extraction took place and try\MessageBreak%
+          to execute it yourself in the terminal%
+        }%
+      \else%
+        \def\svg at tempb{%
+          The extraction to format `#2' failed\MessageBreak%
+          for `#1.#2'\MessageBreak%
+          Only file types `pdf,ps,eps' are supported for\MessageBreak%
+          key `exportformat'%
+        }%
+      \fi%
+      \PackageWarning{svg-extract}{\svg at tempb}%
+    }%
+  \endgroup%
+}
+\endinput
+%%
+%% End of file `svg-extract.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/svg/svg-extract.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/svg/svg.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/svg/svg.sty	2017-03-27 21:43:48 UTC (rev 43624)
+++ trunk/Master/texmf-dist/tex/latex/svg/svg.sty	2017-03-27 21:47:01 UTC (rev 43625)
@@ -4,201 +4,1070 @@
 %%
 %% The original source files were:
 %%
-%% svg.dtx  (with options: `svg')
+%% svg.dtx  (with options: `package,option,base')
+%% svg.dtx  (with options: `package,body,base')
 %% 
-%% -------------------------------------------------------
-%% Copyright (C) 2012 by Philip Ilten <philten at cern.ch>
-%% -------------------------------------------------------
-%%
-%% This file may be distributed and/or modified under the conditions
-%% of the LaTeX Project Public License, either version 1.3 of this
-%% license or (at your option) any later version. The latest version
-%% of this license is in:
-%%
+%% svg -- Include SVG pictures in LaTeX documents using Inkscape
+%% 
+%% Copyright (C) Philip Ilten <philten at cern.ch>, 2012-2016
+%% Copyright (C) Falk Hanisch <hanisch.latex at outlook.com>, 2017-
+%% 
+%% This file was generated from file svg.dtx.
+%% ----------------------------------------------------------------------------
+%% 
+%% 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.3 or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainer of this work is Philip Ilten.
-%%
-%% This work consists of the files README, svg.dtx (with derived files
-%% svg.sty, svg.pdf, Fig.1a.pdf, Fig.1b.eps, Fig.2.pdf, Fig.2.png),
-%% preamble.tex, example.svg (with derived files example.pdf and
-%% example.pdf_tex), and root.C (with derived files root.svg,
-%% root.pdf, and root.pdf_tex).
-%%
-%% The following files constitute the svg package and should be
-%% distributed as a whole: README, svg.dtx, svg.sty, svg.pdf,
-%% Fig.1a.pdf, Fig.1b.eps, Fig.2.pdf, Fig.2.png, preamble.tex
-%% example.svg, example.pdf, example.pdf_tex, root.C, root.svg,
-%% root.pdf, and root.pdf_tex.
-\ProvidesPackage{svg}[2012/09/05 v1.0 SVG inclusion and extraction]%
-\@ifpackageloaded{xkeyval}{}{\RequirePackage{xkeyval}}%
-\@ifpackageloaded{subfig}{}{\RequirePackage{subfig}}%
-\@ifpackageloaded{import}{}{\RequirePackage{import}}%
-\@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}}%
-\@ifpackageloaded{transparent}{}{\RequirePackage{transparent}}%
-\@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}%
-\def\SVG at in@preamble{\jobname.tex}%
-\define at key[SVG]{svg.sty}{preamble}{\def\SVG at in@preamble{#1}}%
-\def\SVG at in@path{./}%
-\define at key[SVG]{svg.sty}{svgpath}{\def\SVG at in@path{#1}}%
-\def\SVG at in@end{\begin{document}}%
-\define at key[SVG]{svg.sty}{end}{\def\SVG at in@end{#1}}%
-\define at boolkey[SVG]{svg.sty}[SVG at in@]{exclude}[true]{}%
-\newlength\SVG at out@width%
-\newif\ifSVG at out@usewidth%
-\define at key[SVG]{svg.sty}{width}%
-{\setlength{\SVG at out@width}{#1}\SVG at out@usewidthtrue}%
-\newlength\SVG at out@height%
-\newif\ifSVG at out@useheight%
-\define at key[SVG]{svg.sty}{height}%
-{\setlength{\SVG at out@height}{#1}\SVG at out@useheighttrue}%
-\define at boolkey[SVG]{svg.sty}[SVG at out@]{pdf}[true]{}%
-\define at boolkey[SVG]{svg.sty}[SVG at out@]{eps}[true]{}%
-\define at boolkey[SVG]{svg.sty}[SVG at out@]{png}[true]{}%
-\newif\ifSVG at out@extract
-\def\SVG at out@path{./}%
-\define at key[SVG]{svg.sty}{path}{\def\SVG at out@path{#1}}%
-\def\SVG at out@name{Fig.\arabic{svgfigure}\alph{subfigure}}%
-\define at key[SVG]{svg.sty}{name}{\def\SVG at out@name{#1}}%
-\define at boolkey[SVG]{svg.sty}[SVG at out@]{clean}[true]{}%
-\def\SVG at out@pretex{}%
-\define at key[SVG]{svg.sty}{pretex}{\def\SVG at out@pretex{#1}}%
-\def\SVG at out@postex{}%
-\define at key[SVG]{svg.sty}{postex}{\def\SVG at out@postex{#1}}%
-\def\SVG at cmd@inkscape{inkscape -z -C}%
-\define at key[SVG]{svg.sty}{inkscape}{\def\SVG at cmd@inkscape{#1}}%
-\def\SVG at cmd@pdflatex{pdflatex}%
-\define at key[SVG]{svg.sty}{pdflatex}{\def\SVG at cmd@pdflatex{#1}}%
-\def\SVG at cmd@pdftops{pdftops -eps}%
-\define at key[SVG]{svg.sty}{pdftops}{\def\SVG at cmd@pdftops{#1}}%
-\def\SVG at cmd@convert{convert -density 300}%
-\define at key[SVG]{svg.sty}{convert}{\def\SVG at cmd@convert{#1}}%
-\ProcessOptionsX[SVG]%
-\newcounter{svgfigure}[figure]%
-\def\setsvg#1{\setkeys[SVG]{svg.sty}{#1}}%
-\def\includesvg{\@ifnextchar[\@includesvg{\@includesvg[]}}%
-\def\@includesvg[#1]#2{%
-  \setkeys[SVG]{svg.sty}{#1}%
-  \SVG at out@extractfalse%
-  \ifSVG at out@pdf \SVG at out@extracttrue \fi%
-  \ifSVG at out@eps \SVG at out@extracttrue \fi%
-  \ifSVG at out@png \SVG at out@extracttrue \fi%
-\ifnum\pdfstrcmp%
-{\pdffilemoddate{\SVG at in@path#2.svg}}%
-{\pdffilemoddate{\SVG at in@path#2.pdf}}>0%
-\immediate\write18{\SVG at cmd@inkscape \space -f\SVG at in@path#2.svg%
-  \space-A\SVG at in@path#2.pdf --export-latex}%
-\fi%
-\ifSVG at out@usewidth%
-\settoheight\SVG at out@height%
-{\includegraphics[width=\SVG at out@width]{\SVG at in@path#2}}%
-\else\ifSVG at out@useheight%
-\settowidth\SVG at out@width%
-{\includegraphics[height=\SVG at out@height]{\SVG at in@path#2}}%
-\else%
-\settoheight\SVG at out@height{\includegraphics{\SVG at in@path#2}}%
-\settowidth\SVG at out@width{\includegraphics{\SVG at in@path#2}}%
-\fi%
-\fi%
-\ifSVG at out@extract%
-\newwrite\SVG at out@file%
-\setcounter{svgfigure}{\value{figure}}%
-\stepcounter{svgfigure}%
-\def\SVG at out@filename{\SVG at out@name}%
-\immediate\openout\SVG at out@file=\SVG at out@path\SVG at out@filename.tex%
-\fi%
-\ifSVG at out@extract%
-\def\SVG at in@line{}%
-\newread\SVG at in@file%
-\immediate\openin\SVG at in@file=\SVG at in@preamble%
-\fi%
-\newif\ifSVG at in@read%
-\ifSVG at out@extract \SVG at in@readtrue \fi%
-\@whilesw\ifSVG at in@read\fi{%
-  \catcode`\#=12\relax\endlinechar=-1%
-  \immediate\read\SVG at in@file to \SVG at in@line%
-  \ifx\SVG at in@end\SVG at in@line%
-  \SVG at in@readfalse%
+%% 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}
+\ProvidesPackage{svg}[%
+  2017/03/27 v2.00\space%
+  (include SVG pictures)%
+]
+\RequirePackage{scrbase}[2016/06/14]
+\RequirePackage{ifxetex}[2010/09/12]
+\RequirePackage{ifluatex}[2016/05/16]
+\RequirePackage{ifpdf}[2016/05/14]
+\RequirePackage{pdftexcmds}[2016/05/21]
+\RequirePackage{shellesc}[2016/06/07]
+\RequirePackage{graphicx}[1999/02/16]
+\DefineFamily{SVG}
+\DefineFamilyMember{SVG}
+\newcommand*\svg at deprecated@key[3][svg]{%
+  \PackageWarning{#1}{%
+    The option key `#2' is deprecated.\MessageBreak%
+    It's recommended to use `#3'\MessageBreak%
+    instead%
+  }%
+  \FamilyOptions{SVG}{#3}%
+}
+\newcommand*\svg at tempa{}
+\newcommand*\svg at tempb{}
+\newif\if at svg@tempswa
+\newcount\svg at tempcnt
+\newif\if at svg@use at xcolor
+\FamilyBoolKey{SVG}{usexcolor}{@svg at use@xcolor}
+\DeclareOption{noxcolor}{\FamilyOptions{SVG}{usexcolor=false}}
+\newif\if at svg@use at transparent
+\FamilyBoolKey{SVG}{usetransparent}{@svg at use@transparent}
+\DeclareOption{notransparent}{\FamilyOptions{SVG}{usetransparent=false}}
+\AtEndOfPackage{%
+  \RelaxFamilyKey{SVG}{usexcolor}%
+  \RelaxFamilyKey{SVG}{usetransparent}%
+  \if at svg@use at xcolor%
+    \RequirePackage{xcolor}[2016/05/11]%
   \else%
-  \immediate\write\SVG at out@file{\unexpanded\expandafter{\SVG at in@line}}%
+    \AfterPackage*{xcolor}{%
+      \PackageWarning{svg}{Package `xcolor' was loaded anyway}%
+    }%
   \fi%
-  \ifeof\SVG at in@file\SVG at in@readfalse\fi%
-  \endlinechar=13\catcode`\#=6\relax}%
-\ifSVG at out@extract \immediate\closein\SVG at in@file \fi%
-\ifSVG at out@extract%
-\def\SVG at out@defpack{\makeatletter%
-  \@ifpackageloaded{import}{}{\RequirePackage{import}}%
-  \@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}}%
-  \@ifpackageloaded{transparent}{}{\RequirePackage{transparent}}%
-  \@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}\makeatother}%
-\def\SVG at out@defwidth{\def\svgwidth{0.99\textwidth}}%
-\def\SVG at out@definput{\import{\SVG at in@path}{#2.pdf_tex}}%
-\immediate\write\SVG at out@file{\unexpanded\expandafter{\SVG at out@defpack}}%
-\immediate\write\SVG at out@file%
-{\noexpand\setlength{\pdfpagewidth}{\the\SVG at out@width}}%
-\immediate\write\SVG at out@file%
-{\noexpand\setlength{\pdfpageheight}{\the\SVG at out@height}}%
-\immediate\write\SVG at out@file%
-{\noexpand\setlength{\paperheight}{\pdfpageheight}}%
-\immediate\write\SVG at out@file%
-{\noexpand\setlength{\paperwidth}{\pdfpagewidth}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\textheight}{\paperheight}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\textwidth}{\paperwidth}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\textheight}{\paperheight}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\oddsidemargin}{-1in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\evensidemargin}{-1in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\topmargin}{-1in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\headheight}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\headsep}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\topskip}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\footskip}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\parindent}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\parsep}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\setlength{\parskip}{0in}}%
-\immediate\write\SVG at out@file{\noexpand\begin{document}}%
-  \immediate\write\SVG at out@file{%
-    \noexpand\pagestyle{empty}%
-    \noexpand\begin{center}%
-      \unexpanded\expandafter{\SVG at out@defwidth}%
-      \unexpanded\expandafter{\SVG at out@pretex}%
-      \expandafter\noexpand\SVG at out@definput%
-      \unexpanded\expandafter{\SVG at out@postex}%
-      \noexpand\end{center}}%
-  \immediate\write\SVG at out@file{\noexpand\end{document}}%
-\immediate\closeout\SVG at out@file%
-\fi%
-\ifSVG at out@extract%
-\immediate\write18{\SVG at cmd@pdflatex\space\SVG at out@path\SVG at out@filename.tex}%
-\fi%
-\ifSVG at out@eps%
-\immediate\write18{\SVG at cmd@pdftops\space\SVG at out@filename.pdf}%
-\immediate\write18{mv \SVG at out@filename.eps%
-  \space\SVG at out@path\SVG at out@filename.eps}%
-\fi%
-\ifSVG at out@png%
-\immediate\write18{\SVG at cmd@convert\space\SVG at out@filename.pdf%
-  \space\SVG at out@filename.png}%
-\immediate\write18{mv \SVG at out@filename.png%
-  \space\SVG at out@path\SVG at out@filename.png}%
-\fi%
-\ifSVG at out@extract%
-\ifSVG at out@pdf%
-\immediate\write18{mv \SVG at out@filename.pdf%
-  \space\SVG at out@path\SVG at out@filename.pdf}%
-\else \ifSVG at out@clean \immediate\write18{rm \SVG at out@filename.pdf} \fi%
-\fi%
-\ifSVG at out@clean%
-\immediate\write18{rm \SVG at out@path\SVG at out@filename.tex%
-  \space\SVG at out@filename.aux \SVG at out@filename.log \SVG at out@filename.out}%
-\fi\fi%
-\ifSVG at in@exclude \else {\def\svgwidth{\the\SVG at out@width}%
-\SVG at out@pretex\import{\SVG at in@path}{#2.pdf_tex}\SVG at out@postex} \fi%
-}%
+  \if at svg@use at transparent%
+    \RequirePackage{transparent}[2016/05/16]%
+  \else%
+    \AfterPackage*{transparent}{%
+      \PackageWarning{svg}{Package `transparent' was loaded anyway}%
+    }%
+  \fi%
+}
+\newcommand*\svg at ink@mode{}
+\DefineFamilyKey{SVG}{inkscape}[true]{%
+  \lowercase{\def\svg at tempa{#1}}%
+  \FamilySetNumerical{SVG}{inkscape}{svg at tempa}{%
+    {false}{0},{off}{0},{no}{0},%
+    {true}{1},{on}{1},{yes}{1},{onlynewer}{1},{newer}{1},%
+    {force}{2},{forced}{2},{overwrite}{2},%
+    {pdf}{3},{eps}{4},{ps}{5},{png}{6},%
+    {drawing}{7},{crop}{7},%
+    {page}{8},{nocrop}{8},%
+    {tex}{9},{latex}{9},{exportlatex}{9},{latexexport}{9},%
+    {notex}{10},{nolatex}{10},{noexportlatex}{10},{nolatexexport}{10},%
+    {latexnoexport}{10},{raw}{10},{plain}{10},{simple}{10}%
+  }{\svg at tempa}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifnum\svg at tempa<\thr@@\relax%
+      \let\svg at ink@mode\svg at tempa%
+    \else%
+      \ifcase\svg at tempa\relax\or\or\or% pdf
+        \FamilyOptions{SVG}{inkscapeformat=pdf}%
+      \or% eps
+        \FamilyOptions{SVG}{inkscapeformat=eps}%
+      \or% ps
+        \FamilyOptions{SVG}{inkscapeformat=ps}%
+      \or% png
+        \FamilyOptions{SVG}{inkscapeformat=png}%
+      \or% drawing
+        \FamilyOptions{SVG}{inkscapearea=drawing}%
+      \or% page
+        \FamilyOptions{SVG}{inkscapearea=page}%
+      \or% tex
+        \FamilyOptions{SVG}{inkscapelatex=true}%
+      \or% notex
+        \FamilyOptions{SVG}{inkscapelatex=false}%
+      \fi%
+    \fi%
+  \else% dpi
+    \def\svg at tempa##1dpi##2\@nil{%
+      \ifstr{##2}{dpi}{\FamilyOptions{SVG}{inkscapedpi=##1}}{}%
+    }%
+    \lowercase{\svg at tempa#1dpi\@nil}%
+    \ifx\FamilyKeyState\FamilyKeyStateProcessed\else%
+      \def\svg at tempa##1-##2\@nil{%
+        \IfArgIsEmpty{##2}{\def\svg at tempb{}}{%
+          \def\svg at tempa##1####1\@nil{\def\svg at tempb{####1}}%
+          \svg at tempa#1\@nil%
+        }%
+        \def\svg at tempa{##1}%
+      }%
+      \svg at tempa#1-\@nil%
+      \PackageWarning{svg}{%
+        Setting the executable%
+        \ifx\svg at tempb\@empty\else%
+          \space and associated options%
+        \fi%
+        \MessageBreak%
+        for Inkscape should be done with options\MessageBreak%
+        `inkscapeexe=\svg at tempa'%
+        \ifx\svg at tempb\@empty\else%
+          \MessageBreak and `inkscapeopt=\svg at tempb'%
+        \fi.\MessageBreak%
+        Nevertheless, this was done by now anyway%
+      }%
+      \edef\svg at tempa{%
+        \noexpand\FamilyOptions{SVG}{inkscapeexe=\svg at tempa}%
+        \ifx\svg at tempb\@empty\else%
+          \noexpand\FamilyOptions{SVG}{inkscapeopt=\svg at tempb}%
+        \fi%
+      }%
+      \svg at tempa%
+    \fi%
+  \fi%
+}
+\DeclareOption{on}{\FamilyOptions{SVG}{inkscape=true}}
+\DeclareOption{off}{\FamilyOptions{SVG}{inkscape=false}}
+\newcommand*\svg at ink@format{pdf}
+\ifxetex\else\ifpdf\else
+  \renewcommand*\svg at ink@format{eps}
+\fi\fi
+\DefineFamilyKey{SVG}{inkscapeformat}{%
+  \lowercase{\def\svg at tempa{#1}}%
+  \FamilySetNumerical{SVG}{inkscapeformat}{svg at tempa}{%
+    {pdf}{0},{eps}{1},{ps}{2},{png}{3}%
+  }{\svg at tempa}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% latex
+      \renewcommand*\svg at ink@format{pdf}%
+    \or% eps
+      \renewcommand*\svg at ink@format{eps}%
+    \or% ps
+      \renewcommand*\svg at ink@format{ps}%
+    \or% png
+      \renewcommand*\svg at ink@format{png}%
+    \fi%
+  \fi%
+}
+\newif\if at svg@ink at latex
+\FamilyBoolKey{SVG}{inkscapelatex}{@svg at ink@latex}
+\newcommand*\svg at ink@area{}
+\DefineFamilyKey{SVG}{inkscapearea}{%
+  \FamilySetNumerical{SVG}{inkscapearea}{svg at tempa}{%
+    {drawing}{0},{crop}{0},%
+    {page}{1},{nocrop}{1}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% drawing
+      \renewcommand*\svg at ink@area{-D}%
+    \else% page
+      \renewcommand*\svg at ink@area{-C}%
+    \fi%
+  \fi%
+}
+\newcommand*\svg at ink@dpi{}
+\let\svg at ink@dpi\relax
+\DefineFamilyKey{SVG}{inkscapedpi}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \let\svg at ink@dpi\relax%
+    \FamilyKeyStateProcessed%
+  }{%
+    \def\svg at tempa##1dpi##2\@nil{\def\svg at tempa{##1}}%
+    \lowercase{\svg at tempa#1dpi\@nil}%
+    \ifnumber{\svg at tempa}{%
+      \edef\svg at ink@dpi{\svg at tempa}%
+      \FamilyKeyStateProcessed%
+    }{}%
+  }%
+}
+\DefineFamilyKey{SVG}{inkscapedensity}{\FamilyOptions{SVG}{inkscapedpi=#1}}
+\newcommand*\svg at ink@exe{inkscape}
+\DefineFamilyKey{SVG}{inkscapeexe}{%
+  \renewcommand*\svg at ink@exe{#1}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svg at ink@opt{}
+\DefineFamilyKey{SVG}{inkscapeopt}{%
+  \renewcommand*\svg at ink@opt{#1}%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{svgpath}{%
+  \PackageWarning{svg}{%
+    The key `svgpath' is deprecated. It's recommended\MessageBreak%
+    to use `\string\svgpath' instead%
+  }%
+  \ifx\svgpath\@undefined%
+    \AtEndOfPackage{\svgpath{{#1}}}%
+  \else%
+    \svgpath{{#1}}%
+  \fi%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svg at out@path{}
+\newcommand*\svg at out@name{\svg at file@name\svg at file@suffix}
+\newcommand*\svg at out@base{\svg at out@path\svg at out@name.\svg at ink@format}
+\DefineFamilyKey{SVG}{inkscapepath}{%
+  \FamilySetNumerical{SVG}{inkscapepath}{svg at tempa}{%
+    {svgpath}{0},{svgdir}{0},%
+    {svgsubpath}{1},{svgsubdir}{1},%
+    {basepath}{2},{basedir}{2},{jobpath}{2},{jobdir}{2},%
+    {basesubpath}{3},{basesubdir}{3},{jobsubpath}{3},{jobsubdir}{3}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% svgpath
+      \renewcommand*\svg at out@path{\svg at file@path}%
+    \or% svgsubpath
+      \renewcommand*\svg at out@path{\svg at file@path svg-inkscape/}%
+    \or% basepath
+      \renewcommand*\svg at out@path{./}%
+    \or% basesubpath
+      \renewcommand*\svg at out@path{./svg-inkscape/}%
+    \fi%
+  \else%
+    \renewcommand*\svg at out@path{#1}%
+    \svg at normalize@path{\svg at out@path}%
+    \FamilyKeyStateProcessed%
+  \fi%
+}
+\DefineFamilyKey{SVG}{inkscapename}{%
+  \renewcommand*\svg at out@name{#1\svg at file@suffix}%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svg at param@width{\z@}
+\DefineFamilyKey{SVG}{width}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \renewcommand*\svg at param@width{\z@}%
+    \FamilyKeyStateProcessed%
+  }{%
+    \FamilySetLengthMacro{SVG}{width}{\svg at param@width}{#1}%
+    \ifdim\svg at param@width<\z@\relax%
+      \FamilyKeyStateUnknownValue%
+    \fi%
+  }%
+}
+\newcommand*\svg at param@height{\z@}
+\DefineFamilyKey{SVG}{height}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \renewcommand*\svg at param@height{\z@}%
+    \FamilyKeyStateProcessed%
+  }{%
+    \FamilySetLengthMacro{SVG}{height}{\svg at param@height}{#1}%
+    \ifdim\svg at param@height<\z@\relax%
+      \FamilyKeyStateUnknownValue%
+    \fi%
+  }%
+}
+\newcommand*\svg at param@scale{1}
+\DefineFamilyKey{SVG}{scale}{%
+  \FamilyKeyStateUnknownValue%
+  \svg at ifvalueisrelax{#1}{%
+    \renewcommand*\svg at param@scale{1}%
+    \FamilyKeyStateProcessed%
+  }{%
+    \ifisdimension{#1\p@}{%
+      \ifdim\dimexpr#1\p@\relax>\z@\relax%
+        \renewcommand*\svg at param@scale{#1}%
+        \FamilyKeyStateProcessed%
+      \fi%
+    }{}%
+  }%
+}
+\newcommand*\svg at param@pretex{}
+\let\svg at param@pretex\relax
+\DefineFamilyKey{SVG}{pretex}{%
+  \svg at ifvalueisrelax{#1}{%
+    \let\svg at param@pretex\relax%
+  }{%
+    \def\svg at param@pretex{#1}%
+  }%
+  \FamilyKeyStateProcessed%
+}
+\newcommand*\svg at param@apptex{}
+\let\svg at param@apptex\relax
+\DefineFamilyKey{SVG}{apptex}{%
+  \svg at ifvalueisrelax{#1}{%
+    \let\svg at param@apptex\relax%
+  }{%
+    \def\svg at param@apptex{#1}%
+  }%
+  \FamilyKeyStateProcessed%
+}
+\DefineFamilyKey{SVG}{postex}{%
+  \svg at deprecated@key{postex=#1}{apptex=#1}%
+}
+\newcounter{svg at param@lastpage}
+\DefineFamilyKey{SVG}{lastpage}{%
+  \FamilySetNumerical{SVG}{lastpage}{svg at tempa}{%
+    {false}{0},{off}{0},{no}{0},{ignore}{0},%
+    {true}{1},{on}{1},{yes}{1},{auto}{1}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\svg at tempa\relax% false
+      \FamilySetCounter{SVG}{lastpage}{svg at param@lastpage}{\m at ne}%
+    \or% true
+      \FamilySetCounter{SVG}{lastpage}{svg at param@lastpage}{\z@}%
+    \fi%
+  \fi%
+}
+\newif\if at svg@draft
+\FamilyBoolKey{SVG}{draft}{@svg at draft}
+\AtBeginDocument{\if at svg@draft\else\ifGin at draft\@svg at drafttrue\fi\fi}
+\newcommand*\svg at quotes@remove[1]{%
+  \begingroup%
+    \edef\svg at tempa{#1}%
+    \expandafter\svg at quotes@@remove\svg at tempa""\@nil%
+    \edef\svg at tempb{%
+      \endgroup%
+      \noexpand\def\noexpand#1{\unexpanded\expandafter{\svg at tempa}}%
+    }%
+  \svg at tempb%
+}
+\newcommand*\svg at quotes@@remove{}
+\def\svg at quotes@@remove#1"#2"#3\@nil{%
+  \IfArgIsEmpty{#2}{%
+    \edef\svg at tempa{#1}%
+  }{%
+    \svg at quotes@@remove#1#2#3""\@nil%
+  }%
+}
+\newif\if at svg@quotes at found
+\newcommand*\svg at quotes@check[1]{%
+  \expandafter\svg at quotes@@check#1"\@nil%
+}
+\newcommand*\svg at quotes@@check{}
+\def\svg at quotes@@check#1"#2\@nil{%
+  \IfArgIsEmpty{#2}{\@svg at quotes@foundfalse}{\@svg at quotes@foundtrue}%
+}
+\newcommand*\svg at normalize@path[1]{%
+  \begingroup%
+    \edef\svg at tempa{#1}%
+    \svg at quotes@check{\svg at tempa}%
+    \svg at quotes@remove{\svg at tempa}%
+    \ifx\svg at tempa\@empty\relax%
+      \def\svg at tempa{./}%
+    \fi%
+    \expandafter\svg at normalize@@path\svg at tempa//\@nil%
+    \edef\svg at tempb{%
+      \endgroup%
+      \if at svg@quotes at found%
+        \noexpand\def\noexpand#1{"\unexpanded\expandafter{\svg at tempa}"}%
+      \else%
+        \noexpand\def\noexpand#1{\unexpanded\expandafter{\svg at tempa}}%
+      \fi%
+    }%
+  \svg at tempb%
+}
+\newcommand*\svg at normalize@@path{}
+\def\svg at normalize@@path#1/#2/\@nil{%
+  \IfArgIsEmpty{#2}{%
+    \IfArgIsEmpty{#1}{\def\svg at tempa{}}{\def\svg at tempa{#1/}}%
+  }{%
+    \svg at normalize@@path#2/\@nil%
+    \edef\svg at tempa{#1/\unexpanded\expandafter{\svg at tempa}}%
+  }%
+}
+\newcommand*\svg at ifvalueisrelax[1]{%
+  \begingroup%
+    \def\svg at tempa{#1}%
+    \def\svg at tempb{\relax}%
+    \ifx\svg at tempa\svg at tempb\relax%
+      \aftergroup\@firstoftwo%
+    \else%
+      \aftergroup\@secondoftwo%
+    \fi%
+  \endgroup%
+}
+\DefineFamilyMember[.dummy]{SVG}
+\newcommand*\svg at dummy@key[2][]{%
+  \IfArgIsEmpty{#1}{%
+    \DefineFamilyKey[.dummy]{SVG}{#2}{%
+      \PackageWarning{svg}{%
+        The option key `#2' can only\MessageBreak%
+        be used with package `svg-extract', but\MessageBreak%
+        you didn't load it%
+      }%
+      \FamilyKeyStateProcessed%
+    }%
+  }{%
+    \DefineFamilyKey[.dummy]{SVG}{#2}[{#1}]{%
+      \PackageWarning{svg}{%
+        The option key `#2' can only\MessageBreak%
+        be used with package `svg-extract', but\MessageBreak%
+        you didn't load it%
+      }%
+      \FamilyKeyStateProcessed%
+    }%
+  }%
+  \BeforePackage{svg-extract}{\RelaxFamilyKey[.dummy]{SVG}{#2}}%
+}
+\svg at dummy@key[true]{extract}
+\svg at dummy@key{extractformat}
+\svg at dummy@key[true]{pdf}
+\svg at dummy@key[true]{eps}
+\svg at dummy@key{extractpreamble}
+\svg at dummy@key{preamble}
+\svg at dummy@key{extractpreambleend}
+\svg at dummy@key{end}
+\svg at dummy@key{extractruns}
+\svg at dummy@key{latexexe}
+\svg at dummy@key{pdflatex}
+\svg at dummy@key{latexext}
+\svg at dummy@key{latexopt}
+\svg at dummy@key{dvipsopt}
+\svg at dummy@key{pstoepsopt}
+\svg at dummy@key{pstopdfopt}
+\svg at dummy@key{pdftoepsopt}
+\svg at dummy@key{pdftopsopt}
+\svg at dummy@key{pdftops}
+\svg at dummy@key[true]{convert}
+\svg at dummy@key{convertformat}
+\svg at dummy@key[true]{png}
+\svg at dummy@key{convertdpi}
+\svg at dummy@key{convertdensity}
+\svg at dummy@key{magickexe}
+\svg at dummy@key{magicksetting}
+\svg at dummy@key{magickoperator}
+\svg at dummy@key{gsexe}
+\svg at dummy@key{gsopt}
+\svg at dummy@key{gsdevice}
+\svg at dummy@key{extractpath}
+\svg at dummy@key{path}
+\svg at dummy@key{extractname}
+\svg at dummy@key{name}
+\svg at dummy@key{extractwidth}
+\svg at dummy@key{extractheight}
+\svg at dummy@key{extractscale}
+\svg at dummy@key{extractpretex}
+\svg at dummy@key{extractapptex}
+\svg at dummy@key{extractpostex}
+\svg at dummy@key[true]{clean}
+\svg at dummy@key[true]{clear}
+\svg at dummy@key[true]{exclude}
+\FamilyExecuteOptions{SVG}{%
+  inkscape=true,inkscapepath=basesubdir,inkscapelatex=true,%
+  inkscapearea=drawing,usexcolor=true,usetransparent=true%
+}
+\FamilyProcessOptions{SVG}
+\newif\if at svg@file at found
+\newcommand*\svg at file@path{}
+\newcommand*\svg at file@name{}
+\newcommand*\svg at file@base{}
+\newcommand*\svg at file@suffix{}
+\newcommand*\svg at get@path[3][svg]{%
+  \begingroup%
+    \edef\svg at tempa{#2}%
+    \svg at quotes@check{\svg at tempa}%
+    \svg at quotes@remove{\svg at tempa}%
+    \expandafter\svg at filename@parse\expandafter{\svg at tempa}%
+    \IfArgIsEmpty{#1}{%
+      \edef\svg at tempa{\filename at area\filename at base.\filename at ext}%
+    }{%
+      \edef\svg at tempa{\filename at area\filename at base.#1}%
+    }%
+    \if at svg@quotes at found%
+      \edef\svg at tempa{"\svg at tempa"}%
+    \fi%
+    \@svg at file@foundfalse%
+    \let\input at path\svg at path%
+    \svg at get@@path{\svg at tempa}%
+    \if at svg@file at found\else%
+      \ifx\Ginput at path\@undefined\else%
+        \let\input at path\Ginput at path%
+        \svg at get@@path{\svg at tempa}%
+      \fi%
+    \fi%
+    \IfArgIsEmpty{#3}{}{%
+      \if at svg@file at found\else%
+        \ifx#3\@undefined\else%
+          \edef\svg at tempb{{#3}}%
+          \let\input at path\svg at tempb%
+          \svg at get@@path{\svg at tempa}%
+        \fi%
+      \fi%
+    }%
+    \edef\svg at tempa{%
+      \endgroup%
+      \if at svg@file at found%
+        \noexpand\@svg at file@foundtrue%
+        \noexpand\def\noexpand\svg at file@path{\filename at area}%
+        \noexpand\def\noexpand\svg at file@name{\filename at base}%
+        \noexpand\def\noexpand\svg at file@base{\filename at area\filename at base}%
+      \else%
+        \noexpand\@svg at file@foundfalse%
+        \noexpand\def\noexpand\svg at file@path{}%
+        \noexpand\def\noexpand\svg at file@name{#2}%
+        \noexpand\def\noexpand\svg at file@base{#2}%
+      \fi%
+    }%
+  \svg at tempa%
+}
+\newcommand*\svg at get@@path[1]{%
+  \expandafter\IfFileExists\expandafter{#1}{%
+    \@svg at file@foundtrue%
+    \expandafter\svg at filename@parse\expandafter{\@filef at und}%
+  }{}%
+}
+\newcommand*\svg at filename@parse[1]{%
+  \begingroup%
+    \def\svg at tempa##1{%
+      \def\svg at tempb####1####2\@nil{%
+        \ifstr{####1}{"}{\def\svg at tempb{####2}}{\def\svg at tempb{####1####2}}%
+      }%
+      \expandafter\svg at tempb##1\@nil%
+      \edef##1{\svg at tempb}%
+    }%
+    \filename at parse{#1}%
+    \ifx\filename at ext\relax\else%
+      \edef\filename at base{\filename at base.\filename at ext}%
+    \fi%
+    \svg at quotes@check{\filename at area}%
+    \if at svg@quotes at found%
+      \svg at quotes@remove{\filename at area}%
+      \edef\filename at area{"\filename at area"}%
+      \svg at tempa{\filename at base}%
+    \fi%
+    \svg at quotes@check{\filename at base}%
+    \if at svg@quotes at found%
+      \svg at quotes@remove{\filename at base}%
+    \fi%
+    \let\svg at tempa\filename at area%
+    \expandafter\filename at parse\expandafter{\filename at base}%
+    \let\filename at area\svg at tempa%
+    \if at svg@quotes at found%
+       \edef\filename at base{"\filename at base"}%
+    \fi%
+    \edef\svg at tempa{%
+      \noexpand\endgroup%
+      \noexpand\def\noexpand\filename at area{\filename at area}%
+      \noexpand\def\noexpand\filename at base{\filename at base}%
+      \ifx\filename at ext\relax%
+        \noexpand\let\noexpand\filename at ext\noexpand\relax%
+      \else%
+        \noexpand\def\noexpand\filename at ext{\filename at ext}%
+      \fi%
+    }%
+  \svg at tempa%
+}
+\newcommand*\svg at file@missing[3][]{%
+  \begingroup%
+    \edef\svg at tempa{#2}%
+    \expandafter\svg at filename@parse\expandafter{\svg at tempa}%
+    \svg at quotes@remove{\filename at area}%
+    \svg at quotes@remove{\filename at base}%
+    \ifx\filename at ext\relax\else%
+      \svg at quotes@remove{\filename at ext}%
+    \fi%
+    \IfArgIsEmpty{#1}{%
+      \def\svg at tempa{%
+        Did you run the export with Inkscape? There's no file\MessageBreak%
+        `\filename at area\filename at base.\filename at ext'%
+      }%
+    }{%
+      \edef\filename at ext{#1}%
+      \edef\svg at tempb{#3}%
+      \ifstr{\svg at tempb}{./}{\let\svg at tempb\@empty}{}%
+      \ifstr{\filename at area}{./}{\let\filename at area\@empty}{}%
+      \def\svg at tempa{%
+        There's no file `\filename at base.\filename at ext'\MessageBreak%
+        \ifx\filename at area\@empty%
+          neither in the current directory nor\MessageBreak%
+          any other searched path given by\MessageBreak%
+          \string\svgpath%
+          \ifx\svg at path\@undefined\space\else%
+            \space(\svg at path)\MessageBreak%
+          \fi%
+           or \string\graphicspath%
+          \ifx\Ginput at path\@undefined\else%
+            \space(\Ginput at path)%
+          \fi%
+          \ifx\svg at tempb\@empty\else%
+            \MessageBreak or even `inkscapepath' (`\svg at tempb')%
+          \fi.%
+        \else%
+          in folder `\filename at area'.%
+        \fi%
+      }%
+    }%
+    \PackageError{svg}{%
+      File `\filename at base.\filename at ext' is missing%
+    }{\svg at tempa}%
+  \endgroup%
+}
+\ifx\pdf at filemoddate\@undefined
+  \newcommand*\svg at iffilenewer[2]{\@gobbletwo}
+\else
+  \newcommand*\svg at iffilenewer[2]{%
+    \begingroup%
+      \edef\svg at tempa{\pdf at filemoddate{#1}}%
+      \edef\svg at tempb{\pdf at filemoddate{#2}}%
+      \ifnum\pdf at strcmp{\svg at tempa}{\svg at tempb}>\z@\relax%
+        \aftergroup\@firstoftwo%
+      \else%
+        \aftergroup\@secondoftwo%
+      \fi%
+    \endgroup%
+  }
+\fi
+\newcommand*\svg at local@param at set[1]{%
+  \svg at local@param at use%
+  \FamilyOptions{SVG}{#1}%
+  \ifstr{\svg at ink@format}{png}{\FamilyOptions{SVG}{inkscapelatex=false}}{}%
+}
+\newcommand*\svg at local@param at use{}
+\newcommand*\svg at local@param at def[1]{%
+  \edef\svg at local@param at use{%
+    \unexpanded\expandafter{\svg at local@param at use}\unexpanded{#1}%
+  }%
+}
+\DefineFamilyMember[.param]{SVG}
+\newcommand*\svgsetup{\FamilyOptions{SVG}}
+\newcommand*\setsvg{\FamilyOptions{SVG}}
+\newcommand*\svg at path{}
+\let\svg at path\input at path
+\newcommand*\svgpath[1]{%
+  \def\svg at tempb{}%
+  \@tfor\svg at tempa:=#1\do{%
+    \ifx\svg at tempa\@empty\else%
+      \svg at normalize@path{\svg at tempa}%
+      \edef\svg at tempb{\svg at tempb{\svg at tempa}}%
+    \fi%
+  }%
+  \ifx\svg at tempb\@empty\else%
+    \let\svg at path\svg at tempb%
+  \fi%
+}
+\newcommand*{\includesvg}[2][]{%
+  \begingroup%
+    \svg at deprecated@param%
+    \svg at local@param at set{#1}%
+    \if at svg@ink at latex%
+      \def\svg at file@suffix{_svg-tex}%
+    \else%
+      \def\svg at file@suffix{_svg-raw}%
+    \fi%
+    \@onelevel at sanitize\svg at file@suffix%
+    \svg at get@path{#2}{}%
+    \if at svg@file at found%
+      \svg at ink@run%
+      \IfFileExists{\svg at out@base}{}{%
+        \@svg at file@foundfalse%
+        \svg at file@missing{\svg at out@base}{}%
+      }%
+      \if at svg@ink at latex%
+        \IfFileExists{\svg at out@base_tex}{}{%
+          \@svg at file@foundfalse%
+          \svg at file@missing{\svg at out@base_tex}{}%
+        }%
+      \fi%
+      \if at svg@file at found%
+        \svg at input{\svg at out@base}%
+        \svg at extract{\svg at out@base}%
+      \fi%
+    \else%
+      \svg at file@missing[svg]{\svg at file@base}{}%
+    \fi%
+  \endgroup%
+}
+\svg at local@param at def{%
+  \FamilyCounterKey[.param]{SVG}{lastpage}{svg at param@lastpage}%
+}
+\newcommand*\svg at param@angle{0}
+\svg at local@param at def{%
+  \DefineFamilyKey[.param]{SVG}{angle}{%
+    \renewcommand*\svg at param@angle{#1}%
+    \FamilyKeyStateProcessed%
+  }%
+}
+\newcommand*\svg at param@origin{c}
+\svg at local@param at def{%
+  \DefineFamilyKey[.param]{SVG}{origin}[c]{%
+    \renewcommand*\svg at param@origin{#1}%
+    \FamilyKeyStateProcessed%
+  }%
+}
+\newcommand*{\includeinkscape}[2][]{%
+  \begingroup%
+    \svg at deprecated@param%
+    \filename at parse{#2}%
+    \ifx\filename at ext\relax\else%
+      \svg at quotes@remove{\filename at ext}%
+      \expandafter\lowercase\expandafter{%
+        \expandafter\def\expandafter\filename at ext\expandafter{\filename at ext}%
+      }%
+      \let\svg at tempb\filename at ext%
+      \def\svg at tempa##1_tex##2\@nil{\def\svg at tempb{##1}}%
+      \expandafter\svg at tempa\svg at tempb_tex\@nil%
+      \@for\svg at tempa:={pdf,eps,ps,png}\do{%
+        \ifstr{\svg at tempb}{\svg at tempa}{%
+          \edef\svg at tempa{%
+            \noexpand\FamilyOptions{SVG}{inkscapeformat=\svg at tempb}%
+          }%
+          \svg at tempa%
+        }{}%
+      }%
+      \ifstr{\filename at ext}{\svg at ink@format_tex}{%
+        \FamilyOptions{SVG}{inkscapelatex=true}%
+      }{}%
+    \fi%
+    \svg at local@param at set{#1}%
+    \expandafter\svg at get@path\expandafter[\svg at ink@format]{#2}{\svg at out@path}%
+    \if at svg@file at found%
+      \edef\svg at out@name{\svg at file@name}%
+      \edef\svg at out@base{\svg at file@path\svg at file@name.\svg at ink@format}%
+      \if at svg@ink at latex%
+        \IfFileExists{\svg at out@base_tex}{}{%
+          \@svg at file@foundfalse%
+          \svg at file@missing{\svg at out@base_tex}{}%
+        }%
+      \fi%
+      \if at svg@file at found%
+        \svg at input{\svg at out@base}%
+        \svg at extract{\svg at out@base}%
+      \fi%
+    \else%
+      \svg at file@missing[\svg at ink@format]{\svg at file@base}{\svg at out@path}%
+    \fi%
+  \endgroup%
+}
+\newcommand*\svg at deprecated@param{%
+  \@svg at tempswafalse%
+  \ifx\svgwidth\@undefined\else%
+    \edef\svg at tempa{\noexpand\FamilyOptions{SVG}{width=\svgwidth}}%
+    \svg at tempa%
+    \@svg at tempswatrue%
+  \fi%
+  \ifx\svgscale\@undefined\else%
+    \edef\svg at tempa{\noexpand\FamilyOptions{SVG}{scale=\svgscale}}%
+    \svg at tempa%
+    \@svg at tempswatrue%
+  \fi%
+  \if at svg@tempswa%
+    \PackageWarning{svg}{%
+      You should specify the image size with parameters\MessageBreak%
+      `width' and `height' or `scale' instead of using\MessageBreak%
+      `\string\svgscale' or `\string\svgwidth'%
+    }%
+    \let\svgwidth\@undefined%
+    \let\svgscale\@undefined%
+  \fi%
+}
+\newif\if at svg@ink at run
+\newcommand*\svg at ink@run{%
+  \ifnum\svg at ink@mode>\z@\relax%
+    \begingroup%
+      \@svg at ink@runtrue%
+      \ifnum\svg at ink@mode=\tw@\relax\else%
+        \svg at iffilenewer{\svg at file@base.svg}{\svg at out@base}{}{%
+          \@svg at ink@runfalse%
+        }%
+        \if at svg@ink at latex%
+          \IfFileExists{\svg at out@base_tex}{%
+            \ifnum\pdf at shellescape=\@ne\relax\if at svg@ink at run%
+              \svg at iffilenewer{\svg at out@base_tex}{\svg at out@base}{%
+                \@svg at ink@runfalse%
+                \edef\svg at tempa{\svg at out@base}%
+                \svg at quotes@remove{\svg at tempa}%
+                \PackageWarning{svg}{%
+                  Since the encountered filedate of file\MessageBreak%
+                  `\svg at tempa_tex' is newer than \MessageBreak%
+                  `\svg at tempa' it's supposed that\MessageBreak%
+                  you customized this file. To avoid an accidental\MessageBreak%
+                  overwriting of this file, the Inkscape export\MessageBreak%
+                  won't be done. If you want to overwrite the\MessageBreak%
+                  existing file please choose the parameter\MessageBreak%
+                  `inkscape=force'%
+                }%
+              }{}%
+            \fi\fi%
+          }{\@svg at ink@runtrue}%
+        \fi%
+      \fi%
+      \if at svg@ink at run%
+        \ifnum\pdf at shellescape=\@ne\relax%
+          \ifx\svg at ink@dpi\relax%
+            \ifstr{\svg at ink@format}{png}{%
+              \FamilyOptions{SVG}{inkscapedpi=300}%
+            }{}%
+          \fi%
+          \PackageInfo{svg}{%
+            Calling Inkscape%
+            \ifx\svg at ink@opt\@empty\else%
+              \space with added options `\svg at ink@opt'%
+            \fi%
+          }%
+          \edef\svg at tempa{\svg at file@base}%
+          \edef\svg at tempb{\svg at out@name}%
+          \svg at quotes@remove{\svg at tempa}%
+          \svg at quotes@remove{\svg at tempb}%
+          \ShellEscape{\svg at ink@cmd{\svg at tempa}{\svg at tempb}}%
+          \IfFileExists{\svg at out@name.\svg at ink@format}{%
+            \edef\svg at tempb{\svg at tempb.\svg at ink@format}%
+            \svg at quotes@remove{\svg at out@base}%
+            \svg at shell@mkdir{\svg at out@path}%
+            \svg at shell@move{\svg at tempb}{\svg at out@base}%
+            \if at svg@ink at latex%
+              \svg at shell@move{\svg at tempb_tex}{\svg at out@base_tex}%
+            \fi%
+          }{%
+            \PackageWarning{svg}{%
+              The export with Inkscape failed for file\MessageBreak%
+              `\svg at tempa.svg'\MessageBreak%
+              Troubleshooting: Please check in the log file how\MessageBreak%
+              the invocation of Inkscape took place and try to\MessageBreak%
+              execute it yourself in the terminal%
+            }%
+          }%
+        \else%
+          \edef\svg at tempa{\svg at file@base}%
+          \svg at quotes@remove{\svg at tempa}%
+          \PackageWarning{svg}{%
+            You didn't enable `shell escape' (or `write18')\MessageBreak%
+            so it wasn't possible to launch the Inkscape export\MessageBreak%
+            for `\svg at tempa.svg'%
+          }%
+        \fi%
+      \fi%
+    \endgroup%
+  \fi%
+}
+\newcommand*\svg at ink@cmd[2]{%
+  \svg at ink@exe\space-z\space\svg at ink@area\space%
+  \ifx\svg at ink@dpi\relax\else--export-dpi=\svg at ink@dpi\space\fi%
+  \if at svg@ink at latex--export-latex\space\fi%
+  \svg at ink@opt\space%
+  --file="#1.svg"\space%
+  --export-\svg at ink@format="#2.\svg at ink@format"\space%
+}
+\newcommand*\svg at get@lastpage[1]{%
+  \ifstr{\svg at ink@format}{pdf}{%
+    \begingroup%
+      \svg at tempcnt=\m at ne\relax%
+      \ifx\XeTeXpdfpagecount\@undefined%
+        \ifpdf%
+          \ifx\pdfximage\@undefined%
+            \ifx\saveimageresource\@undefined\else%
+              \saveimageresource{#1}%
+              \svg at tempcnt=\lastsavedimageresourcepages\relax%
+            \fi%
+          \else%
+            \pdfximage{#1}%
+            \svg at tempcnt=\pdflastximagepages\relax%
+          \fi%
+        \fi%
+      \else%
+        \svg at tempcnt=\XeTeXpdfpagecount#1\relax%
+      \fi%
+      \ifnum\svg at tempcnt=\m at ne\relax%
+        \PackageWarning{svg}{%
+          It wasn't possible to detect the last page\MessageBreak%
+          of `#1'%
+        }%
+      \else%
+        \PackageInfo{svg}{Last page of `#1' is \the\svg at tempcnt}%
+      \fi%
+      \edef\svg at tempa{%
+        \noexpand\endgroup%
+        \noexpand\FamilyOptions{SVG}{lastpage=\the\svg at tempcnt}%
+      }%
+    \svg at tempa%
+  }{}%
+}
+\newcommand*\svg at wrn@scale{%
+  \ifdim\dimexpr\svg at param@scale\p@\relax=\p@\relax\else%
+    \@svg at tempswafalse%
+    \ifdim\svg at param@width>\z@\relax%
+      \@svg at tempswatrue%
+    \fi%
+    \ifdim\svg at param@height>\z@\relax%
+      \@svg at tempswatrue%
+    \fi%
+    \if at svg@tempswa%
+      \PackageWarning{svg}{%
+        The parameter `scale' is only considered if neither\MessageBreak%
+        `width' nor `height' are specified%
+      }%
+    \fi%
+  \fi%
+}
+\newcommand*\svg at input{\svg@@input}
+\newcommand*\svg@@input[2][]{%
+  \IfArgIsEmpty{#1}{}{\svg at local@param at set{#1}}%
+  \if at svg@draft%
+    \@svg at ink@latexfalse%
+  \fi%
+  \edef\svg at tempa{#2}%
+  \if at svg@ink at latex%
+    \svg at patches{\svg at tempa}%
+    \ifnum\value{svg at param@lastpage}=\z@\relax%
+      \expandafter\svg at get@lastpage\expandafter{\svg at tempa}%
+    \fi%
+    \edef\svg at tempa{%
+      \ifx\svg at param@pretex\relax\else%
+        \noexpand\svg at param@pretex%
+      \fi%
+      \noexpand\input{\svg at tempa_tex}%
+      \ifx\svg at param@apptex\relax\else%
+        \noexpand\svg at param@apptex%
+      \fi%
+    }%
+    \ifdim\dimexpr\svg at param@angle\p@\relax=\z@\relax%
+      \svg at tempa%
+    \else%
+      \edef\svg at tempb{origin=\svg at param@origin}%
+      \expandafter\rotatebox\expandafter[\svg at tempb]{\svg at param@angle}{%
+        \svg at tempa%
+      }%
+    \fi%
+  \else%
+    \svg at wrn@scale%
+    \edef\svg at tempb{keepaspectratio,scale=\svg at param@scale}%
+    \ifdim\svg at param@height>\z@\relax%
+      \edef\svg at tempb{\svg at tempb,height=\svg at param@height}%
+    \fi%
+    \ifdim\svg at param@width>\z@\relax%
+      \edef\svg at tempb{\svg at tempb,width=\svg at param@width}%
+    \fi%
+    \ifdim\dimexpr\svg at param@angle\p@\relax=\z@\relax\else%
+      \edef\svg at tempb{%
+        \svg at tempb,origin=\svg at param@origin,angle=\svg at param@angle%
+      }%
+    \fi%
+    \if at svg@draft%
+      \edef\svg at tempb{\svg at tempb,draft}%
+    \else%
+      \edef\svg at tempb{\svg at tempb,draft=false}%
+    \fi%
+    \expandafter\includegraphics\expandafter[\svg at tempb]{\svg at tempa}%
+  \fi%
+}
+\newcommand*\svg at patches[1]{%
+  \let\svg at picture@saved\picture%
+  \let\picture\svg at picture@patched%
+  \let\svg at includegraphics@saved\includegraphics%
+  \let\includegraphics\svg at includegraphics@patched%
+  \edef\svg at includegraphics@file{#1}%
+}
+\newcommand*\svg at picture@saved{}
+\newcommand*\svg at picture@patched{}
+\newcommand*\svg at pictur@patched{}
+\long\def\svg at picture@patched#1{\svg at pictur@patched@#1}
+\def\svg at pictur@patched@(#1,#2){%
+  \svg at wrn@scale%
+  \ifdim\svg at param@height>\z@\relax%
+    \Gscale at div\svg at tempa{#1\p@}{#2\p@}%
+    \setlength\unitlength{\svg at param@height}%
+    \setlength\unitlength{\svg at tempa\unitlength}%
+    \ifdim\svg at param@width>\z@\relax%
+      \ifdim\unitlength>\svg at param@width\relax%
+        \setlength\unitlength{\svg at param@width}%
+      \fi%
+    \fi%
+  \else%
+    \ifdim\svg at param@width>\z@\relax%
+      \setlength\unitlength{\svg at param@width}%
+    \else%
+      \setlength\unitlength{\svg at param@scale\unitlength}%
+    \fi%
+  \fi%
+  \svg at picture@saved(#1,#2)%
+}
+\DefineFamily{SVGpatch}
+\DefineFamilyMember{SVGpatch}
+\newcounter{svg at param@currpage}
+\setcounter{svg at param@currpage}{\m at ne}
+\FamilyCounterKey{SVGpatch}{page}{svg at param@currpage}
+\DefineFamilyKey{SVGpatch}{width}{\FamilyKeyStateProcessed}
+\newcommand*\svg at includegraphics@file{}
+\newcommand*\svg at includegraphics@saved{}
+\newcommand*\svg at includegraphics@patched[2][]{%
+  \FamilyOptions{SVGpatch}{#1}%
+  \ifnum\value{svg at param@lastpage}<\z@\relax%
+    \FamilySetCounter{SVGpatch}{page}{svg at param@currpage}{%
+      \the\value{svg at param@lastpage}%
+    }%
+  \fi%
+  \ifnum\value{svg at param@currpage}>\value{svg at param@lastpage}\relax\else%
+    \svg at includegraphics@saved[{#1}]{\svg at includegraphics@file}%
+  \fi%
+}
+\newcommand*\svghidepreamblestart{%
+  \PackageWarning{svg}{%
+    The macro `\string\svghidepreamblestart' is only meant\MessageBreak%
+    to be used together with package `svg-extract'.\MessageBreak%
+    Nevertheless, nothing will happen%
+  }%
+}
+\newcommand*\svghidepreambleend{%
+  \PackageWarning{svg}{%
+    The macro `\string\svghidepreambleend' is only meant\MessageBreak%
+    to be used together with package `svg-extract'.\MessageBreak%
+    Nevertheless, nothing will happen%
+  }%
+}
+\newcommand*\svg at extract[1]{}
+\ifnum\pdf at shellescape=\@ne\relax\else%
+  \expandafter\endinput%
+\fi
+\RequirePackage{ifplatform}[2010/10/22]
+\ifwindows
+  \newcommand*\svg at shell@@mkdir[1]{if not exist "#1" mkdir "#1"}
+  \newcommand*\svg at shell@@mv{move}
+  \newcommand*\svg at shell@@rm{del}
+\else
+  \newcommand*\svg at shell@@mkdir[1]{mkdir -p "#1"}
+  \newcommand*\svg at shell@@mv{mv}
+  \newcommand*\svg at shell@@rm{rm}
+\fi
+\newcommand*\svg at shell@mkdir[1]{%
+  \begingroup%
+    \edef\svg at tempa{#1}%
+    \svg at quotes@remove{\svg at tempa}%
+    \@svg at tempswatrue%
+    \ifstr{\svg at tempa}{}{\@svg at tempswafalse}{%
+    \ifstr{\svg at tempa}{./}{\@svg at tempswafalse}{%
+    }}%
+    \if at svg@tempswa%
+      \ShellEscape{\svg at shell@@mkdir{\svg at tempa}}%
+    \fi%
+  \endgroup%
+}
+\newcommand*\svg at shell@move[2]{%
+  \ShellEscape{\svg at shell@@mv\space"#1"\space"#2"}%
+}
+\newcommand*\svg at shell@rm[1]{%
+  \ShellEscape{\svg at shell@@rm\space"#1"}%
+}
 \endinput
 %%
 %% End of file `svg.sty'.

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2017-03-27 21:43:48 UTC (rev 43624)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2017-03-27 21:47:01 UTC (rev 43625)
@@ -2465,6 +2465,7 @@
  'silence'      => 'latex -translate-file=empty.tcx',   # no 8-bit
  'skdoc'        => 'tex',
  'skrapport'    => 'pdflatex', # as with download
+ 'svg'		=> 'etex -interaction=nonstopmode',
  'svn-multi'    => 'latex',  # interaction for .pl
  'teubner'      => 'latex',  # interaction
  'termlist'     => 'tex',    # interaction for .pl



More information about the tex-live-commits mailing list