diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def | 105 |
1 files changed, 79 insertions, 26 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def index f2447ac4f51..104fd7fc231 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def @@ -46,16 +46,16 @@ %% %% ----------------------------------------------------------------------- %% -\GetIdInfo$Id: l3drivers.dtx 6511 2016-05-17 20:20:23Z joseph $ +\GetIdInfo$Id: l3drivers.dtx 6644 2016-08-13 20:22:11Z bruno $ {L3 Experimental drivers} \ProvidesExplFile {l3dvidpfmx.def}{\ExplFileDate}{\ExplFileVersion} {L3 Experimental driver: dvipdfmx} \cs_new_protected:Npn \__driver_literal:n #1 { \tex_special:D { pdf:literal~ #1 } } -\cs_new_protected_nopar:Npn \__driver_scope_begin: +\cs_new_protected:Npn \__driver_scope_begin: { \__driver_literal:n { q } } -\cs_new_protected_nopar:Npn \__driver_scope_end: +\cs_new_protected:Npn \__driver_scope_end: { \__driver_literal:n { Q } } \cs_new_protected:Npn \__driver_matrix:n #1 { \__driver_literal:n { #1 \c_space_tl 0~0~cm } } @@ -67,12 +67,12 @@ { \tl_set:Nn \l__driver_current_color_tl { \current@color } } { } } -\cs_new_protected_nopar:Npn \__driver_color_ensure_current: +\cs_new_protected:Npn \__driver_color_ensure_current: { \tex_special:D { pdf:bcolor~\l__driver_current_color_tl } \group_insert_after:N \__driver_color_reset: } -\cs_new_protected_nopar:Npn \__driver_color_reset: +\cs_new_protected:Npn \__driver_color_reset: { \tex_special:D { pdf:ecolor } } \cs_new_protected:Npn \__driver_box_use_clip:N #1 { @@ -129,13 +129,13 @@ } \cs_new_eq:NN \__driver_draw_literal:n \__driver_literal:n \cs_generate_variant:Nn \__driver_draw_literal:n { x } -\cs_new_protected_nopar:Npn \__driver_draw_begin: +\cs_new_protected:Npn \__driver_draw_begin: { \__driver_draw_scope_begin: } -\cs_new_protected_nopar:Npn \__driver_draw_end: +\cs_new_protected:Npn \__driver_draw_end: { \__driver_draw_scope_end: } -\cs_new_protected_nopar:Npn \__driver_draw_scope_begin: +\cs_new_protected:Npn \__driver_draw_scope_begin: { \__driver_draw_literal:n { q } } -\cs_new_protected_nopar:Npn \__driver_draw_scope_end: +\cs_new_protected:Npn \__driver_draw_scope_end: { \__driver_draw_literal:n { Q } } \cs_new_protected:Npn \__driver_draw_moveto:nn #1#2 { @@ -157,29 +157,42 @@ c } } -\bool_new:N \__driver_draw_eor_bool -\cs_new_protected_nopar:Npn \__driver_draw_closepath: +\cs_new_protected:Npn \__driver_draw_rectangle:nnnn #1#2#3#4 + { + \__driver_draw_literal:x + { + \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ + \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ + re + } + } +\cs_new_protected:Npn \__driver_draw_evenodd_rule: + { \bool_gset_true:N \g__driver_draw_eor_bool } +\cs_new_protected:Npn \__driver_draw_nonzero_rule: + { \bool_gset_false:N \g__driver_draw_eor_bool } +\bool_new:N \g__driver_draw_eor_bool +\cs_new_protected:Npn \__driver_draw_closepath: { \__driver_draw_literal:n { h } } -\cs_new_protected_nopar:Npn \__driver_draw_stroke: +\cs_new_protected:Npn \__driver_draw_stroke: { \__driver_draw_literal:n { S } } -\cs_new_protected_nopar:Npn \__driver_draw_closestroke: +\cs_new_protected:Npn \__driver_draw_closestroke: { \__driver_draw_literal:n { s } } -\cs_new_protected_nopar:Npn \__driver_draw_fill: +\cs_new_protected:Npn \__driver_draw_fill: { \__driver_draw_literal:x - { f \bool_if:NT \__driver_draw_eor_bool * } + { f \bool_if:NT \g__driver_draw_eor_bool * } } -\cs_new_protected_nopar:Npn \__driver_draw_fillstroke: +\cs_new_protected:Npn \__driver_draw_fillstroke: { \__driver_draw_literal:x - { B \bool_if:NT \__driver_draw_eor_bool * } + { B \bool_if:NT \g__driver_draw_eor_bool * } } -\cs_new_protected_nopar:Npn \__driver_draw_clip: +\cs_new_protected:Npn \__driver_draw_clip: { \__driver_draw_literal:x - { W \bool_if:NT \__driver_draw_eor_bool * } + { W \bool_if:NT \g__driver_draw_eor_bool * } } -\cs_new_protected_nopar:Npn \__driver_draw_discardpath: +\cs_new_protected:Npn \__driver_draw_discardpath: { \__driver_draw_literal:n { n } } \cs_new_protected:Npn \__driver_draw_dash:nn #1#2 { @@ -200,18 +213,34 @@ } \cs_new_protected:Npn \__driver_draw_miterlimit:n #1 { \__driver_draw_literal:x { \fp_eval:n {#1} ~ M } } -\cs_new_protected_nopar:Npn \__driver_draw_cap_butt: +\cs_new_protected:Npn \__driver_draw_cap_butt: { \__driver_draw_literal:n { 0 ~ J } } -\cs_new_protected_nopar:Npn \__driver_draw_cap_round: +\cs_new_protected:Npn \__driver_draw_cap_round: { \__driver_draw_literal:n { 1 ~ J } } -\cs_new_protected_nopar:Npn \__driver_draw_cap_rectangle: +\cs_new_protected:Npn \__driver_draw_cap_rectangle: { \__driver_draw_literal:n { 2 ~ J } } -\cs_new_protected_nopar:Npn \__driver_draw_join_miter: +\cs_new_protected:Npn \__driver_draw_join_miter: { \__driver_draw_literal:n { 0 ~ j } } -\cs_new_protected_nopar:Npn \__driver_draw_join_round: +\cs_new_protected:Npn \__driver_draw_join_round: { \__driver_draw_literal:n { 1 ~ j } } -\cs_new_protected_nopar:Npn \__driver_draw_join_bevel: +\cs_new_protected:Npn \__driver_draw_join_bevel: { \__driver_draw_literal:n { 2 ~ j } } +\cs_new_protected:Npn \__driver_draw_color_cmyk:nnnn #1#2#3#4 + { + \use:x + { + \__driver_draw_color_cmyk_aux:nnnn + { \fp_eval:n {#1} } + { \fp_eval:n {#2} } + { \fp_eval:n {#3} } + { \fp_eval:n {#4} } + } + } +\cs_new_protected:Npn \__driver_draw_color_cmyk_aux:nnnn #1#2#3#4 + { + \__driver_draw_literal:n + { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K } + } \cs_new_protected:Npn \__driver_draw_color_cmyk_fill:nnnn #1#2#3#4 { \__driver_draw_literal:x @@ -230,10 +259,34 @@ K } } +\cs_new_protected:Npn \__driver_draw_color_gray:n #1 + { + \use:x + { \__driver_draw_color_gray_aux:n { \fp_eval:n {#1} } } + } +\cs_new_protected:Npn \__driver_draw_color_gray_aux:n #1 + { + \__driver_draw_literal:n { #1 ~ g ~ #1 ~ G } + } \cs_new_protected:Npn \__driver_draw_color_gray_fill:n #1 { \__driver_draw_literal:x { \fp_eval:n {#1} ~ g } } \cs_new_protected:Npn \__driver_draw_color_gray_stroke:n #1 { \__driver_draw_literal:x { \fp_eval:n {#1} ~ G } } +\cs_new_protected:Npn \__driver_draw_color_rgb:nnn #1#2#3 + { + \use:x + { + \__driver_draw_color_rgb_aux:nnn + { \fp_eval:n {#1} } + { \fp_eval:n {#2} } + { \fp_eval:n {#3} } + } + } +\cs_new_protected:Npn \__driver_draw_color_rgb_aux:nnn #1#2#3 + { + \__driver_draw_literal:n + { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } + } \cs_new_protected:Npn \__driver_draw_color_rgb_fill:nnn #1#2#3 { \__driver_draw_literal:x |