summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/l3dvips.def')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvips.def204
1 files changed, 134 insertions, 70 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
index 858d736bd45..161a7b3d201 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
@@ -20,8 +20,12 @@
%%
%% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project
\ProvidesExplFile
- {l3dvips.def}{2017/03/18}{}
+ {l3dvips.def}{2018-04-30}{}
{L3 Experimental driver: dvips}
+\cs_new_eq:NN \__driver_literal_x:n \tex_special:D
+\cs_new_protected:Npn \__driver_literal:n #1
+ { \__driver_literal_x:n { \exp_not:n {#1} } }
+\cs_generate_variant:Nn \__driver_literal:n { x }
\cs_new_protected:Npn \driver_color_pickup:N #1 { }
\AtBeginDocument
{
@@ -37,7 +41,10 @@
\exp_after:wN \use:n \current@color \c_space_tl 1
}
}
- { \exp_after:wN \__driver_color_pickup:w \current@color \q_stop #1 }
+ {
+ \exp_after:wN \__driver_color_pickup:w
+ \current@color \q_stop #1
+ }
}
\cs_new_protected:Npn \__driver_color_pickup:w #1 ~ #2 \q_stop #3
{ \tl_set:Nn #3 { #1 ~ #2 } }
@@ -45,108 +52,118 @@
{ }
}
\cs_new_protected:Npn \driver_color_cmyk:nnnn #1#2#3#4
- { \__driver_color_select:n { cmyk~ #1 ~ #2 ~ #3 ~ #4 } }
+ {
+ \__driver_color_select:x
+ {
+ cmyk~
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4}
+ }
+ }
\cs_new_protected:Npn \driver_color_gray:n #1
- { \__driver_color_select:n { gray~ #1 } }
+ { \__driver_color_select:x { gray~ \fp_eval:n {#1} } }
\cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3
- { \__driver_color_select:n { rgb~ #1 ~ #2 ~ #3 } }
+ {
+ \__driver_color_select:x
+ { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
+ }
\cs_new_protected:Npn \driver_color_spot:nn #1#2
{ \__driver_color_select:n { \c_space_tl #1 } }
\cs_new_protected:Npn \__driver_color_select:n #1
{
- \tex_special:D { color~push~ #1 }
- \tex_special:D { ps::/l3fc~{ }~def }
+ \__driver_literal:n { color~push~ #1 }
+ \__driver_literal_postscript:n { /l3fc~{ }~def }
\group_insert_after:N \__driver_color_reset:
}
+\cs_generate_variant:Nn \__driver_color_select:n { x }
\cs_new_protected:Npn \__driver_color_reset:
- { \tex_special:D { color~pop } }
-\cs_new_protected:Npn \__driver_literal:n #1
+ { \__driver_literal:n { color~pop } }
+\cs_new_protected:Npn \__driver_literal_postscript:n #1
+ { \__driver_literal:n { ps:: #1 } }
+\cs_generate_variant:Nn \__driver_literal_postscript:n { x }
+\cs_new_protected:Npn \__driver_align_currentpoint_begin:
{
- \tex_special:D
- {
- ps:
- currentpoint~
- currentpoint~translate~
- #1 ~
- neg~exch~neg~exch~translate
- }
+ \__driver_literal:n { ps::[begin] }
+ \__driver_literal_postscript:n { currentpoint }
+ \__driver_literal_postscript:n { currentpoint~translate }
}
-\cs_new_protected:Npn \__driver_scope_begin:
- { \tex_special:D { ps:gsave } }
-\cs_new_protected:Npn \__driver_scope_end:
- { \tex_special:D { ps:grestore } }
-\cs_new:Npn \__driver_absolute_lengths:n #1
+\cs_new_protected:Npn \__driver_align_currentpoint_end:
{
- matrix~currentmatrix~
- Resolution~72~div~VResolution~72~div~scale~
- DVImag~dup~scale~
- #1 ~
- setmatrix
+ \__driver_literal_postscript:n { neg~exch~neg~exch~translate }
+ \__driver_literal:n { ps::[end] }
}
+\cs_new_protected:Npn \__driver_scope_begin:
+ { \__driver_literal:n { ps:gsave } }
+\cs_new_protected:Npn \__driver_scope_end:
+ { \__driver_literal:n { ps:grestore } }
\cs_new_protected:Npn \driver_box_use_clip:N #1
{
\__driver_scope_begin:
- \__driver_literal:n
+ \__driver_align_currentpoint_begin:
+ \__driver_literal_postscript:n { matrix~currentmatrix }
+ \__driver_literal_postscript:n
+ { Resolution~72~div~VResolution~72~div~scale }
+ \__driver_literal_postscript:n { DVImag~dup~scale }
+ \__driver_literal_postscript:x
{
- \__driver_absolute_lengths:n
- {
- 0 ~
- \dim_to_decimal_in_bp:n { \box_dp:N #1 } ~
- \dim_to_decimal_in_bp:n { \box_wd:N #1 } ~
- \dim_to_decimal_in_bp:n { -\box_ht:N #1 - \box_dp:N #1 } ~
- rectclip
- }
+ 0 ~
+ \dim_to_decimal_in_bp:n { \box_dp:N #1 } ~
+ \dim_to_decimal_in_bp:n { \box_wd:N #1 } ~
+ \dim_to_decimal_in_bp:n { -\box_ht:N #1 - \box_dp:N #1 } ~
+ rectclip
}
+ \__driver_literal_postscript:n { setmatrix }
+ \__driver_align_currentpoint_end:
\hbox_overlap_right:n { \box_use:N #1 }
\__driver_scope_end:
\skip_horizontal:n { \box_wd:N #1 }
}
\cs_new_protected:Npn \driver_box_use_rotate:Nn #1#2
+ { \exp_args:NNf \__driver_box_use_rotate:Nn #1 { \fp_eval:n {#2} } }
+\cs_new_protected:Npn \__driver_box_use_rotate:Nn #1#2
{
\__driver_scope_begin:
- \__driver_literal:n
+ \__driver_align_currentpoint_begin:
+ \__driver_literal_postscript:x
{
\fp_compare:nNnTF {#2} = \c_zero_fp
{ 0 }
- { \fp_eval:n { round ( -#2 , 5 ) } } ~
+ { \fp_eval:n { round ( -(#2) , 5 ) } } ~
rotate
}
+ \__driver_align_currentpoint_end:
\box_use:N #1
\__driver_scope_end:
}
\cs_new_protected:Npn \driver_box_use_scale:Nnn #1#2#3
{
\__driver_scope_begin:
- \__driver_literal:n
+ \__driver_align_currentpoint_begin:
+ \__driver_literal_postscript:x
{
\fp_eval:n { round ( #2 , 5 ) } ~
\fp_eval:n { round ( #3 , 5 ) } ~
scale
}
+ \__driver_align_currentpoint_end:
\hbox_overlap_right:n { \box_use:N #1 }
\__driver_scope_end:
}
\cs_new_eq:NN \__driver_image_getbb_eps:n \image_read_bb:n
\cs_new_protected:Npn \__driver_image_include_eps:n #1
- {
- \tex_special:D { PSfile = #1 }
- }
-\cs_new_protected:Npn \__driver_draw_literal:n #1
- { \tex_special:D { ps:: #1 } }
+ { \__driver_literal:n { PSfile = #1 } }
+\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_postscript:n
\cs_generate_variant:Nn \__driver_draw_literal:n { x }
\cs_new_protected:Npn \driver_draw_begin:
{
- \__driver_draw_literal:n { [begin] }
- \__driver_draw_literal:n { save }
- \__driver_draw_literal:n { /l3x~currentpoint~/l3y~exch~def~def }
+ \__driver_literal:n { ps::[begin] }
\__driver_draw_literal:n { @beginspecial }
\__driver_draw_literal:n { /l3fc~{ }~def }
}
\cs_new_protected:Npn \driver_draw_end:
{
\__driver_draw_literal:n { @endspecial }
- \__driver_draw_literal:n { restore }
- \__driver_draw_literal:n { [end] }
+ \__driver_literal:n { ps::[end] }
}
\cs_new_protected:Npn \driver_draw_scope_begin:
{ \__driver_draw_literal:n { save } }
@@ -155,12 +172,18 @@
\cs_new_protected:Npn \driver_draw_moveto:nn #1#2
{
\__driver_draw_literal:x
- { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ moveto }
+ {
+ \dim_to_decimal_in_bp:n {#1} ~
+ \dim_to_decimal_in_bp:n {#2} ~ moveto
+ }
}
\cs_new_protected:Npn \driver_draw_lineto:nn #1#2
{
\__driver_draw_literal:x
- { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ lineto }
+ {
+ \dim_to_decimal_in_bp:n {#1} ~
+ \dim_to_decimal_in_bp:n {#2} ~ lineto
+ }
}
\cs_new_protected:Npn \driver_draw_rectangle:nnnn #1#2#3#4
{
@@ -190,7 +213,7 @@
{ \__driver_draw_literal:n { closepath } }
\cs_new_protected:Npn \driver_draw_stroke:
{
- \__driver_draw_literal:n { stroke }
+ \__driver_draw_literal:n { stroke }
\bool_if:NT \g__driver_draw_clip_bool
{
\__driver_draw_literal:x
@@ -266,25 +289,26 @@
\__driver_draw_literal:n { newpath }
\bool_gset_false:N \g__driver_draw_clip_bool
}
-\cs_new_protected:Npn \driver_draw_cap_dash:nn #1#2
+\cs_new_protected:Npn \driver_draw_dash_pattern:nn #1#2
{
\__driver_draw_literal:x
{
- [ ~
- \clist_map_function:nN {#1} \__driver_draw_dash:n
+ [
+ \exp_args:Nf \use:n
+ { \clist_map_function:nN {#1} \__driver_draw_dash:n }
] ~
\dim_to_decimal_in_bp:n {#2} ~ setdash
}
}
\cs_new:Npn \__driver_draw_dash:n #1
- { \dim_to_decimal_in_bp:n {#1} ~ }
+ { ~ \dim_to_decimal_in_bp:n {#1} }
\cs_new_protected:Npn \driver_draw_linewidth:n #1
{
\__driver_draw_literal:x
{ \dim_to_decimal_in_bp:n {#1} ~ setlinewidth }
}
\cs_new_protected:Npn \driver_draw_miterlimit:n #1
- { \__driver_draw_literal:n { #1 ~ setmiterlimit } }
+ { \__driver_draw_literal:x { \fp_eval:n {#1} ~ setmiterlimit } }
\cs_new_protected:Npn \driver_draw_cap_butt:
{ \__driver_draw_literal:n { 0 ~ setlinecap } }
\cs_new_protected:Npn \driver_draw_cap_round:
@@ -298,37 +322,77 @@
\cs_new_protected:Npn \driver_draw_join_bevel:
{ \__driver_draw_literal:n { 2 ~ setlinejoin } }
\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4
- { \__driver_draw_fill:n { #1 ~ #2 ~ #3 ~ #4 ~ setcmykcolor } }
+ {
+ \__driver_draw_color_fill:x
+ {
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ setcmykcolor
+ }
+ }
\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4
- { \__driver_draw_stroke:n { cmyk ~ #1 ~ #2 ~ #3 ~ #4 } }
+ {
+ \__driver_draw_color_stroke:x
+ {
+ cmyk ~
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4}
+ }
+ }
\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1
- { \__driver_draw_fill:n { #1 ~ setgray } }
+ { \__driver_draw_color_fill:x { \fp_eval:n {#1} ~ setgray } }
\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1
- { \__driver_draw_stroke:n { gray ~ #1 } }
+ { \__driver_draw_color_stroke:x { gray ~ \fp_eval:n {#1} } }
\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3
- { \__driver_draw_fill:n { #1 ~ #2 ~ #3 ~ setrgbcolor } }
+ {
+ \__driver_draw_color_fill:x
+ { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ setrgbcolor }
+ }
\cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3
- { \__driver_draw_stroke:n { rgb ~ #1 ~ #2 ~ #3 } }
+ {
+ \__driver_draw_color_stroke:x
+ { rgb ~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
+ }
\cs_new_protected:Npn \__driver_draw_color_fill:n #1
{ \__driver_draw_literal:n { /l3fc ~ { #1 } ~ def } }
+\cs_generate_variant:Nn \__driver_draw_color_fill:n { x }
\cs_new_protected:Npn \__driver_draw_color_stroke:n #1
{
- \tex_special:D { color~push~#1 }
+ \__driver_literal:n { color~push~#1 }
\group_insert_after:N \__driver_color_reset:
}
+\cs_generate_variant:Nn \__driver_draw_color_stroke:n { x }
\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4
- { \__driver_draw_literal:n { [#1 ~ #2 ~ #3 ~ #4 ~ 0 ~ 0 ] ~ concat } }
+ {
+ \__driver_draw_literal:n
+ {
+ [
+ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+ \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+ 0 ~ 0
+ ] ~
+ concat
+ }
+ }
\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5
{
- \__driver_scope_begin:
+ \__driver_draw_literal:n { @endspecial }
\__driver_draw_literal:n { [end] }
+ \__driver_draw_literal:n { [begin] }
+ \__driver_draw_literal:n { save }
+ \__driver_draw_literal:n { currentpoint }
+ \__driver_draw_literal:n { currentpoint~translate }
+ \driver_draw_cm:nnnn { 1 } { 0 } { 0 } { -1 }
\driver_draw_cm:nnnn {#2} {#3} {#4} {#5}
- \__driver_draw_literal:n { 72~Resolution~div~72~VResolution~div~neg~scale }
- \__driver_draw_literal:n { magscale~{1~DVImag~div~dup~scale}~if }
- \__driver_draw_literal:n { l3x~neg~l3y~neg~translate }
+ \driver_draw_cm:nnnn { 1 } { 0 } { 0 } { -1 }
+ \__driver_draw_literal:n { neg~exch~neg~exch~translate }
+ \__driver_draw_literal:n { [end] }
\hbox_overlap_right:n { \box_use:N #1 }
\__driver_draw_literal:n { [begin] }
- \__driver_scope_end:
+ \__driver_draw_literal:n { restore }
+ \__driver_draw_literal:n { [end] }
+ \__driver_draw_literal:n { [begin] }
+ \__driver_draw_literal:n { @beginspecial }
}
%%
%%