summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def')
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def504
1 files changed, 504 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
new file mode 100644
index 00000000000..254169a1c6d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
@@ -0,0 +1,504 @@
+%%
+%% This is file `l3backend-dvisvgm.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% l3backend-basics.dtx (with options: `package,dvisvgm')
+%% l3backend-color.dtx (with options: `package,dvisvgm')
+%% l3backend-box.dtx (with options: `package,dvisvgm')
+%% l3backend-draw.dtx (with options: `package,dvisvgm')
+%% l3backend-graphics.dtx (with options: `package,dvisvgm')
+%% l3backend-pdf.dtx (with options: `package,dvisvgm')
+%%
+%% Copyright (C) 1990-2019 The LaTeX3 Project
+%%
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version. The latest
+%% version of this license is in the file:
+%%
+%% https://www.latex-project.org/lppl.txt
+%%
+%% This file is part of the "l3backend bundle" (The Work in LPPL)
+%% and all files in that bundle must be distributed together.
+%%
+%% File: l3backend-basics.dtx
+\ProvidesExplFile
+ {l3backend-dvisvgm.def}{2019-04-06}{}
+ {L3 Experimental backend support: dvisvgm}
+\cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D
+\cs_new_protected:Npn \__kernel_backend_literal:n #1
+ { \__kernel_backend_literal:e { \exp_not:n {#1} } }
+\cs_generate_variant:Nn \__kernel_backend_literal:n { x }
+\cs_new_protected:Npn \__kernel_backend_literal_svg:n #1
+ { \__kernel_backend_literal:n { dvisvgm:raw~ #1 { ?nl } } }
+\cs_generate_variant:Nn \__kernel_backend_literal_svg:n { x }
+\cs_new_protected:Npn \__kernel_backend_scope_begin:
+ { \__kernel_backend_literal_svg:n { <g> } }
+\cs_new_protected:Npn \__kernel_backend_scope_end:
+ { \__kernel_backend_literal_svg:n { </g> } }
+\cs_new_protected:Npn \__kernel_backend_scope_begin:n #1
+ { \__kernel_backend_literal_svg:n { <g~ #1 > } }
+\cs_generate_variant:Nn \__kernel_backend_scope_begin:n { x }
+%% File: l3backend-color.dtx
+\cs_new_protected:Npn \__color_backend_pickup:N #1 { }
+\AtBeginDocument
+ {
+ \@ifpackageloaded { color }
+ {
+ \cs_set_protected:Npn \__color_backend_pickup:N #1
+ {
+ \exp_args:NV \tl_if_head_is_space:nTF \current@color
+ {
+ \tl_set:Nx #1
+ {
+ spot ~
+ \exp_after:wN \use:n \current@color \c_space_tl 1
+ }
+ }
+ {
+ \exp_last_unbraced:Nx \__color_backend_pickup:w
+ { \current@color } \q_stop #1
+ }
+ }
+ \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \q_stop #3
+ { \tl_set:Nn #3 { #1 ~ #2 } }
+ }
+ { }
+ }
+\cs_new_protected:Npn \__color_backend_cmyk:nnnn #1#2#3#4
+ {
+ \__color_backend_select:x
+ {
+ cmyk~
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4}
+ }
+ }
+\cs_new_protected:Npn \__color_backend_gray:n #1
+ { \__color_backend_select:x { gray~ \fp_eval:n {#1} } }
+\cs_new_protected:Npn \__color_backend_rgb:nnn #1#2#3
+ {
+ \__color_backend_select:x
+ { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
+ }
+\cs_new_protected:Npn \__color_backend_spot:nn #1#2
+ { \__color_backend_select:n { #1 } }
+\cs_new_protected:Npn \__color_backend_select:n #1
+ {
+ \__kernel_backend_literal:n { color~push~ #1 }
+ \group_insert_after:N \__color_backend_reset:
+ }
+\cs_generate_variant:Nn \__color_backend_select:n { x }
+\cs_new_protected:Npn \__color_backend_reset:
+ { \__kernel_backend_literal:n { color~pop } }
+%% File: l3backend-box.dtx
+\cs_new_protected:Npn \__box_backend_clip:N #1
+ {
+ \int_gincr:N \g__box_clip_path_int
+ \__kernel_backend_literal_svg:x
+ { < clipPath~id = " l3cp \int_use:N \g__box_clip_path_int " > }
+ \__kernel_backend_literal_svg:x
+ {
+ <
+ path ~ d =
+ "
+ M ~ 0 ~
+ \dim_to_decimal:n { -\box_dp:N #1 } ~
+ L ~ \dim_to_decimal:n { \box_wd:N #1 } ~
+ \dim_to_decimal:n { -\box_dp:N #1 } ~
+ L ~ \dim_to_decimal:n { \box_wd:N #1 } ~
+ \dim_to_decimal:n { \box_ht:N #1 + \box_dp:N #1 } ~
+ L ~ 0 ~
+ \dim_to_decimal:n { \box_ht:N #1 + \box_dp:N #1 } ~
+ Z
+ "
+ />
+ }
+ \__kernel_backend_literal_svg:n
+ { < /clipPath > }
+ \__kernel_backend_scope_begin:n
+ {
+ transform =
+ "
+ translate ( { ?x } , { ?y } ) ~
+ scale ( 1 , -1 )
+ "
+ }
+ \__kernel_backend_scope_begin:x
+ {
+ clip-path =
+ "url ( \c_hash_str l3cp \int_use:N \g__box_clip_path_int ) "
+ }
+ \__kernel_backend_scope_begin:n
+ {
+ transform =
+ "
+ scale ( -1 , 1 ) ~
+ translate ( { ?x } , { ?y } ) ~
+ scale ( -1 , -1 )
+ "
+ }
+ \box_use:N #1
+ \__kernel_backend_scope_end:
+ \__kernel_backend_scope_end:
+ \__kernel_backend_scope_end:
+ }
+\int_new:N \g__box_clip_path_int
+\cs_new_protected:Npn \__box_backend_rotate:Nn #1#2
+ {
+ \__kernel_backend_scope_begin:x
+ {
+ transform =
+ "
+ rotate
+ ( \fp_eval:n { round ( -(#2) , 5 ) } , ~ { ?x } , ~ { ?y } )
+ "
+ }
+ \box_use:N #1
+ \__kernel_backend_scope_end:
+ }
+\cs_new_protected:Npn \__box_backend_scale:Nnn #1#2#3
+ {
+ \__kernel_backend_scope_begin:x
+ {
+ transform =
+ "
+ translate ( { ?x } , { ?y } ) ~
+ scale
+ (
+ \fp_eval:n { round ( -#2 , 5 ) } ,
+ \fp_eval:n { round ( -#3 , 5 ) }
+ ) ~
+ translate ( { ?x } , { ?y } ) ~
+ scale ( -1 )
+ "
+ }
+ \hbox_overlap_right:n { \box_use:N #1 }
+ \__kernel_backend_scope_end:
+ }
+%% File: l3backend-draw.dtx
+\cs_new_eq:NN \__draw_backend_literal:n \__kernel_backend_literal_svg:n
+\cs_generate_variant:Nn \__draw_backend_literal:n { x }
+\cs_new_protected:Npn \__draw_backend_begin:
+ {
+ \__draw_backend_scope_begin:
+ \__draw_backend_scope:n { transform="translate({?x},{?y})~scale(1,-1)" }
+ }
+\cs_new_protected:Npn \__draw_backend_end:
+ { \__draw_backend_scope_end: }
+\cs_new_protected:Npn \__draw_backend_scope_begin:
+ {
+ \int_set_eq:NN
+ \l__draw_draw_scope_int
+ \g__draw_draw_scope_int
+ \group_begin:
+ \int_gzero:N \g__draw_draw_scope_int
+ }
+\cs_new_protected:Npn \__draw_backend_scope_end:
+ {
+ \prg_replicate:nn
+ { \g__draw_draw_scope_int }
+ { \__draw_backend_literal:n { </g> } }
+ \group_end:
+ \int_gset_eq:NN
+ \g__draw_draw_scope_int
+ \l__draw_draw_scope_int
+ }
+\cs_new_protected:Npn \__draw_backend_scope:n #1
+ {
+ \__draw_backend_literal:n { <g~ #1 > }
+ \int_gincr:N \g__draw_draw_scope_int
+ }
+\cs_generate_variant:Nn \__draw_backend_scope:n { x }
+\int_new:N \g__draw_draw_scope_int
+\int_new:N \l__draw_draw_scope_int
+\cs_new_protected:Npn \__draw_backend_moveto:nn #1#2
+ {
+ \__draw_backend_add_to_path:n
+ { M ~ \dim_to_decimal:n {#1} ~ \dim_to_decimal:n {#2} }
+ }
+\cs_new_protected:Npn \__draw_backend_lineto:nn #1#2
+ {
+ \__draw_backend_add_to_path:n
+ { L ~ \dim_to_decimal:n {#1} ~ \dim_to_decimal:n {#2} }
+ }
+\cs_new_protected:Npn \__draw_backend_rectangle:nnnn #1#2#3#4
+ {
+ \__draw_backend_add_to_path:n
+ {
+ M ~ \dim_to_decimal:n {#1} ~ \dim_to_decimal:n {#2}
+ h ~ \dim_to_decimal:n {#3} ~
+ v ~ \dim_to_decimal:n {#4} ~
+ h ~ \dim_to_decimal:n { -#3 } ~
+ Z
+ }
+ }
+\cs_new_protected:Npn \__draw_backend_curveto:nnnnnn #1#2#3#4#5#6
+ {
+ \__draw_backend_add_to_path:n
+ {
+ C ~
+ \dim_to_decimal:n {#1} ~ \dim_to_decimal:n {#2} ~
+ \dim_to_decimal:n {#3} ~ \dim_to_decimal:n {#4} ~
+ \dim_to_decimal:n {#5} ~ \dim_to_decimal:n {#6}
+ }
+ }
+\cs_new_protected:Npn \__draw_backend_add_to_path:n #1
+ {
+ \tl_gset:Nx \g__draw_draw_path_tl
+ {
+ \g__draw_draw_path_tl
+ \tl_if_empty:NF \g__draw_draw_path_tl { \c_space_tl }
+ #1
+ }
+ }
+\tl_new:N \g__draw_draw_path_tl
+\cs_new_protected:Npn \__draw_backend_evenodd_rule:
+ { \__draw_backend_scope:n { fill-rule="evenodd" } }
+\cs_new_protected:Npn \__draw_backend_nonzero_rule:
+ { \__draw_backend_scope:n { fill-rule="nonzero" } }
+\cs_new_protected:Npn \__draw_backend_closepath:
+ { \__draw_backend_add_to_path:n { Z } }
+\cs_new_protected:Npn \__draw_backend_path:n #1
+ {
+ \bool_if:NTF \g__draw_draw_clip_bool
+ {
+ \int_gincr:N \g__draw_clip_path_int
+ \__draw_backend_literal:x
+ {
+ < clipPath~id = " l3cp \int_use:N \g__draw_clip_path_int " >
+ { ?nl }
+ <path~d=" \g__draw_draw_path_tl "/> { ?nl }
+ < /clipPath > { ? nl }
+ <
+ use~xlink:href =
+ "\c_hash_str l3path \int_use:N \g__draw_path_int " ~
+ #1
+ />
+ }
+ \__draw_backend_scope:x
+ {
+ clip-path =
+ "url( \c_hash_str l3cp \int_use:N \g__draw_clip_path_int)"
+ }
+ }
+ {
+ \__draw_backend_literal:x
+ { <path ~ d=" \g__draw_draw_path_tl " ~ #1 /> }
+ }
+ \tl_gclear:N \g__draw_draw_path_tl
+ \bool_gset_false:N \g__draw_draw_clip_bool
+ }
+\int_new:N \g__draw_path_int
+\cs_new_protected:Npn \__draw_backend_stroke:
+ { \__draw_backend_path:n { style="fill:none" } }
+\cs_new_protected:Npn \__draw_backend_closestroke:
+ {
+ \__draw_backend_closepath:
+ \__draw_backend_stroke:
+ }
+\cs_new_protected:Npn \__draw_backend_fill:
+ { \__draw_backend_path:n { style="stroke:none" } }
+\cs_new_protected:Npn \__draw_backend_fillstroke:
+ { \__draw_backend_path:n { } }
+\cs_new_protected:Npn \__draw_backend_clip:
+ { \bool_gset_true:N \g__draw_draw_clip_bool }
+\bool_new:N \g__draw_draw_clip_bool
+\cs_new_protected:Npn \__draw_backend_discardpath:
+ {
+ \bool_if:NT \g__draw_draw_clip_bool
+ {
+ \int_gincr:N \g__draw_clip_path_int
+ \__draw_backend_literal:x
+ {
+ < clipPath~id = " l3cp \int_use:N \g__draw_clip_path_int " >
+ { ?nl }
+ <path~d=" \g__draw_draw_path_tl "/> { ?nl }
+ < /clipPath >
+ }
+ \__draw_backend_scope:x
+ {
+ clip-path =
+ "url( \c_hash_str l3cp \int_use:N \g__draw_clip_path_int)"
+ }
+ }
+ \tl_gclear:N \g__draw_draw_path_tl
+ \bool_gset_false:N \g__draw_draw_clip_bool
+ }
+\cs_new_protected:Npn \__draw_backend_dash_pattern:nn #1#2
+ {
+ \use:x
+ {
+ \__draw_backend_dash_aux:nn
+ { \clist_map_function:nn {#1} \__draw_backend_dash:n }
+ { \dim_to_decimal:n {#2} }
+ }
+ }
+\cs_new:Npn \__draw_backend_dash:n #1
+ { , \dim_to_decimal_in_bp:n {#1} }
+\cs_new_protected:Npn \__draw_backend_dash_aux:nn #1#2
+ {
+ \__draw_backend_scope:x
+ {
+ stroke-dasharray =
+ "
+ \tl_if_empty:oTF { \use_none:n #1 }
+ { none }
+ { \use_none:n #1 }
+ " ~
+ stroke-offset=" #2 "
+ }
+ }
+\cs_new_protected:Npn \__draw_backend_linewidth:n #1
+ { \__draw_backend_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } }
+\cs_new_protected:Npn \__draw_backend_miterlimit:n #1
+ { \__draw_backend_scope:x { stroke-miterlimit=" \fp_eval:n {#1} " } }
+\cs_new_protected:Npn \__draw_backend_cap_butt:
+ { \__draw_backend_scope:n { stroke-linecap="butt" } }
+\cs_new_protected:Npn \__draw_backend_cap_round:
+ { \__draw_backend_scope:n { stroke-linecap="round" } }
+\cs_new_protected:Npn \__draw_backend_cap_rectangle:
+ { \__draw_backend_scope:n { stroke-linecap="square" } }
+\cs_new_protected:Npn \__draw_backend_join_miter:
+ { \__draw_backend_scope:n { stroke-linejoin="miter" } }
+\cs_new_protected:Npn \__draw_backend_join_round:
+ { \__draw_backend_scope:n { stroke-linejoin="round" } }
+\cs_new_protected:Npn \__draw_backend_join_bevel:
+ { \__draw_backend_scope:n { stroke-linejoin="bevel" } }
+\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:nnnn #1#2#3#4
+ {
+ \use:x
+ {
+ \__draw_backend_color_fill:nnn
+ { \fp_eval:n { -100 * ( (#1) * ( 1 - (#4) ) - 1 ) } }
+ { \fp_eval:n { -100 * ( (#2) * ( 1 - (#4) ) + #4 - 1 ) } }
+ { \fp_eval:n { -100 * ( (#3) * ( 1 - (#4) ) + #4 - 1 ) } }
+ }
+ }
+\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:nnnn #1#2#3#4
+ {
+ \__draw_backend_select:x
+ {
+ cmyk~
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4}
+ }
+ }
+\cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1
+ {
+ \use:x
+ {
+ \__draw_backend_color_gray_aux:n
+ { \fp_eval:n { 100 * (#1) } }
+ }
+ }
+\cs_new_protected:Npn \__draw_backend_color_gray_aux:n #1
+ { \__draw_backend_color_fill:nnn {#1} {#1} {#1} }
+\cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1
+ { \__draw_backend_select:x { gray~ \fp_eval:n {#1} } }
+\cs_new_protected:Npn \__draw_backend_color_fill_rgb:nnn #1#2#3
+ {
+ \use:x
+ {
+ \__draw_backend_color_fill:nnn
+ { \fp_eval:n { 100 * (#1) } }
+ { \fp_eval:n { 100 * (#2) } }
+ { \fp_eval:n { 100 * (#3) } }
+ }
+ }
+\cs_new_protected:Npn \__draw_backend_color_fill:nnn #1#2#3
+ {
+ \__draw_backend_scope:x
+ {
+ fill =
+ "
+ rgb
+ (
+ #1 \c_percent_str ,
+ #2 \c_percent_str ,
+ #3 \c_percent_str
+ )
+ "
+ }
+ }
+\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:nnn #1#2#3
+ {
+ \__draw_backend_select:x
+ { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
+ }
+\cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4
+ {
+ \__draw_backend_scope:n
+ {
+ transform =
+ "
+ matrix
+ (
+ \fp_eval:n {#1} , \fp_eval:n {#2} ,
+ \fp_eval:n {#3} , \fp_eval:n {#4} ,
+ 0pt , 0pt
+ )
+ "
+ }
+ }
+\cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5#6#7
+ {
+ \__kernel_backend_scope_begin:
+ \__draw_backend_cm:nnnn {#2} {#3} {#4} {#5}
+ \__kernel_backend_literal_svg:n
+ {
+ < g~
+ stroke="none"~
+ transform="scale(-1,1)~translate({?x},{?y})~scale(-1,-1)"
+ >
+ }
+ \box_set_wd:Nn #1 { 0pt }
+ \box_set_ht:Nn #1 { 0pt }
+ \box_set_dp:Nn #1 { 0pt }
+ \box_use:N #1
+ \__kernel_backend_literal_svg:n { </g> }
+ \__kernel_backend_scope_end:
+ }
+%% File: l3backend-graphics.dtx
+\AtBeginDocument
+ {
+ \cs_new_eq:NN \__graphics_backend_getbb_png:n \graphics_extract_bb:n
+ \cs_new_eq:NN \__graphics_backend_getbb_jpg:n \graphics_extract_bb:n
+ }
+\cs_new_protected:Npn \__graphics_backend_include_png:n #1
+ {
+ \__kernel_backend_literal:x
+ {
+ dvisvgm:img~
+ \dim_to_decimal:n { \l_graphics_ury_dim } ~
+ \dim_to_decimal:n { \l_graphics_ury_dim } ~
+ \__graphics_backend_include_bitmap_quote:w #1 " #1 " \q_stop
+ }
+ }
+\cs_new_eq:NN \__graphics_backend_include_jpg:n \__graphics_backend_include_png:n
+\cs_new:Npn \__graphics_backend_include_bitmap_quote:w #1 " #2 " #3 \q_stop
+ { " #2 " }
+%% File: l3backend-pdf.dtx
+\box_new:N \l__pdf_internal_box
+\cs_new_protected:Npn \__pdf_backend_catalog_gput:nn #1#2 { }
+\cs_new_protected:Npn \__pdf_backend_info_gput:nn #1#2 { }
+\cs_new_protected:Npn \__pdf_backend_object_new:nn #1#2 { }
+\cs_new:Npn \__pdf_backend_object_ref:n #1 { }
+\cs_new_protected:Npn \__pdf_backend_object_write:nn #1#2 { }
+\cs_new_protected:Npn \__pdf_backend_object_write:nx #1#2 { }
+\cs_new_protected:Npn \__pdf_backend_object_now:nn #1#2 { }
+\cs_new_protected:Npn \__pdf_backend_object_now:nx #1#2 { }
+\cs_new:Npn \__pdf_backend_object_last: { }
+\cs_new_protected:Npn \__pdf_backend_compresslevel:n #1 { }
+\cs_new_protected:Npn \__pdf_backend_compress_objects:n #1 { }
+\cs_new_protected:Npn \__pdf_backend_version_major_gset:n #1 { }
+\cs_new_protected:Npn \__pdf_backend_version_minor_gset:n #1 { }
+\cs_new:Npn \__pdf_backend_version_major: { -1 }
+\cs_new:Npn \__pdf_backend_version_minor: { -1 }
+\cs_new_protected:Npn \__pdf_backend_bdc:nn #1#2 { }
+\cs_new_protected:Npn \__pdf_backend_emc: { }
+%%
+%%
+%% End of file `l3backend-dvisvgm.def'.