diff options
author | Karl Berry <karl@freefriends.org> | 2019-07-02 21:03:06 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-07-02 21:03:06 +0000 |
commit | 6cd9cb9b90a640486b1e6cf9bf4385e1622dc621 (patch) | |
tree | 55b66dec7d3519db5b1b299ba0ae90aa4fe2714d /Master/texmf-dist/tex/latex/l3kernel | |
parent | 0eeaf7545f37a529bbc7549c23ec0f2160e509e0 (diff) |
l3 (2jul19)
git-svn-id: svn://tug.org/texlive/trunk@51534 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
24 files changed, 2564 insertions, 3738 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index dbdc37c17f5..d4f199159cc 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -40,6 +40,7 @@ %% l3fp-random.dtx (with options: `package') %% l3fparray.dtx (with options: `package') %% l3sort.dtx (with options: `package') +%% l3str-convert.dtx (with options: `package') %% l3tl-analysis.dtx (with options: `package') %% l3regex.dtx (with options: `package') %% l3box.dtx (with options: `package') @@ -64,7 +65,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2019-05-28}% +\def\ExplFileDate{2019-07-01}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -2189,6 +2190,7 @@ \cs_set:Npn \use_ii:nnnn #1#2#3#4 {#2} \cs_set:Npn \use_iii:nnnn #1#2#3#4 {#3} \cs_set:Npn \use_iv:nnnn #1#2#3#4 {#4} +\cs_set:Npn \use_ii_i:nn #1#2 { #2 #1 } \cs_set:Npn \use_none_delimit_by_q_nil:w #1 \q_nil { } \cs_set:Npn \use_none_delimit_by_q_stop:w #1 \q_stop { } \cs_set:Npn \use_none_delimit_by_q_recursion_stop:w #1 \q_recursion_stop { } @@ -9348,7 +9350,7 @@ } } %% File: l3msg.dtx -\tl_new:N \l__msg_tmp_tl +\tl_new:N \l__msg_internal_tl \str_new:N \l__msg_name_str \str_new:N \l__msg_text_str \tl_const:Nn \c__msg_text_prefix_tl { msg~text~>~ } @@ -9435,22 +9437,35 @@ \c_space_tl \msg_line_number: } -\cs_new_protected:Npn \__msg_interrupt:Nnnn #1#2#3#4 +\cs_new_protected:Npn \__msg_interrupt:NnnnN #1#2#3#4#5 { \str_set:Nx \l__msg_text_str { #1 {#2} } \str_set:Nx \l__msg_name_str { \msg_module_name:n {#2} } - \tl_if_empty:nTF {#4} + \cs_if_eq:cNTF + { \c__msg_more_text_prefix_tl #2 / #3 } + \__msg_no_more_text:nnnn { - \__msg_interrupt_wrap:nnn {#3} + \__msg_interrupt_wrap:nnn + { \use:c { \c__msg_text_prefix_tl #2 / #3 } #4 } { \c__msg_continue_text_tl } - { \c__msg_no_info_text_tl } + { + \c__msg_no_info_text_tl + \tl_if_empty:NF #5 + { \\ \\ #5 } + } } { - \__msg_interrupt_wrap:nnn {#3} + \__msg_interrupt_wrap:nnn + { \use:c { \c__msg_text_prefix_tl #2 / #3 } #4 } { \c__msg_help_text_tl } - {#4} + { + \use:c { \c__msg_more_text_prefix_tl #2 / #3 } #4 + \tl_if_empty:NF #5 + { \\ \\ #5 } + } } } +\cs_new:Npn \__msg_no_more_text:nnnn #1#2#3#4 { } \cs_new_protected:Npn \__msg_interrupt_wrap:nnn #1#2#3 { \iow_wrap:nnnN { \\ #3 } { } { } \__msg_interrupt_more_text:n @@ -9468,13 +9483,13 @@ { ~ } } { } \__msg_interrupt_text:n - \iow_wrap:nnnN { \l__msg_tmp_tl \\ \\ #2 } { } { } + \iow_wrap:nnnN { \l__msg_internal_tl \\ \\ #2 } { } { } \__msg_interrupt:n } \cs_new_protected:Npn \__msg_interrupt_text:n #1 { \group_end: - \tl_set:Nn \l__msg_tmp_tl {#1} + \tl_set:Nn \l__msg_internal_tl {#1} } \cs_new_protected:Npn \__msg_interrupt_more_text:n #1 { \exp_args:Nx \tex_errhelp:D { #1 \iow_newline: } } @@ -9600,41 +9615,32 @@ } \__msg_class_new:nn { fatal } { - \__msg_interrupt:Nnnn - \msg_fatal_text:n - {#1} - { \use:c { \c__msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} } - { \c__msg_fatal_text_tl } - \tex_end:D + \__msg_interrupt:NnnnN + \msg_fatal_text:n {#1} {#2} + { {#3} {#4} {#5} {#6} } + \c__msg_fatal_text_tl + \__msg_fatal_exit: + } + \cs_new_protected:Npn \__msg_fatal_exit: + { + \tex_batchmode:D + \tex_read:D -1 to \l__msg_internal_tl } \__msg_class_new:nn { critical } { - \__msg_interrupt:Nnnn - \msg_critical_text:n - {#1} - { \use:c { \c__msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} } - { \c__msg_critical_text_tl } + \__msg_interrupt:NnnnN + \msg_critical_text:n {#1} {#2} + { {#3} {#4} {#5} {#6} } + \c__msg_critical_text_tl \tex_endinput:D } \__msg_class_new:nn { error } { - \__msg_error:cnnnnn - { \c__msg_more_text_prefix_tl #1 / #2 } - {#3} {#4} {#5} {#6} - { - \__msg_interrupt:Nnnn - \msg_error_text:n - {#1} - { \use:c { \c__msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} } - } - } - \cs_new_protected:Npn \__msg_error:cnnnnn #1#2#3#4#5#6 - { - \cs_if_eq:cNTF {#1} \__msg_no_more_text:nnnn - { #6 { } } - { #6 { \use:c {#1} {#2} {#3} {#4} {#5} } } + \__msg_interrupt:NnnnN + \msg_error_text:n {#1} {#2} + { {#3} {#4} {#5} {#6} } + \c_empty_tl } - \cs_new:Npn \__msg_no_more_text:nnnn #1#2#3#4 { } \__msg_class_new:nn { warning } { \str_set:Nx \l__msg_text_str { \msg_warning_text:n {#1} } @@ -9710,13 +9716,13 @@ { \tl_if_empty:nF {#1} { \exp_args:No \iow_term:n { \use_none:n #1 } } - \tl_set:Nn \l__msg_tmp_tl {#2} + \tl_set:Nn \l__msg_internal_tl {#2} \__kernel_iow_with:Nnn \tex_newlinechar:D { 10 } { \__kernel_iow_with:Nnn \tex_errorcontextlines:D { -1 } { \tex_showtokens:D \exp_after:wN \exp_after:wN \exp_after:wN - { \exp_after:wN \l__msg_tmp_tl } + { \exp_after:wN \l__msg_internal_tl } } } } @@ -12154,7 +12160,8 @@ { \__keys_property_find:n {#1} \cs_if_exist:cTF { \c__keys_props_root_tl \l__keys_property_tl } - { \__keys_define_code:n {#2} } + { \__keys_define_code:n {#2} + } { \tl_if_empty:NF \l__keys_property_tl { @@ -12183,7 +12190,7 @@ { \tl_if_empty:NF \l__keys_module_tl { \l__keys_module_tl / } - #1 + \tl_trim_spaces:n {#1} } \tl_set:Nn \l__keys_property_tl { . #2 } } @@ -12992,7 +12999,28 @@ } } \cs_new:Npn \__keys_trim_spaces:n #1 - { \tl_trim_spaces:o { \tl_to_str:n {#1} } } + { + \exp_after:wN \__keys_trim_spaces_auxi:w \tl_to_str:n {#1} + / \q_nil \q_stop + + } +\cs_new:Npn \__keys_trim_spaces_auxi:w #1 / #2 \q_stop + { + \quark_if_nil:nTF {#2} + { \tl_trim_spaces:n {#1} } + { \__keys_trim_spaces_auxii:w #1 / #2 } + } +\cs_new:Npn \__keys_trim_spaces_auxii:w #1 / #2 / \q_nil + { + \tl_trim_spaces:n {#1} + \__keys_trim_spaces_auxiii:w #2 / \q_recursion_tail / \q_recursion_stop + } +\cs_set:Npn \__keys_trim_spaces_auxiii:w #1 / + { + \quark_if_recursion_tail_stop:n {#1} + \tl_trim_spaces:n { / #1 } + \__keys_trim_spaces_auxiii:w + } \prg_new_conditional:Npnn \keys_if_exist:nn #1#2 { p , T , F , TF } { \cs_if_exist:cTF @@ -20040,6 +20068,1296 @@ \iow_char:N\\sort_return_swapped: ~multiple~times.~ Exactly~one~of~these~should~be~called. } +%% File: l3str-convert.dtx +\cs_new_protected:Npn \__str_tmp:w { } +\tl_new:N \l__str_internal_tl +\int_new:N \l__str_internal_int +\tl_new:N \g__str_result_tl +\int_const:Nn \c__str_replacement_char_int { "FFFD } +\int_const:Nn \c__str_max_byte_int { 255 } +\prop_new:N \g__str_alias_prop +\prop_gput:Nnn \g__str_alias_prop { latin1 } { iso88591 } +\prop_gput:Nnn \g__str_alias_prop { latin2 } { iso88592 } +\prop_gput:Nnn \g__str_alias_prop { latin3 } { iso88593 } +\prop_gput:Nnn \g__str_alias_prop { latin4 } { iso88594 } +\prop_gput:Nnn \g__str_alias_prop { latin5 } { iso88599 } +\prop_gput:Nnn \g__str_alias_prop { latin6 } { iso885910 } +\prop_gput:Nnn \g__str_alias_prop { latin7 } { iso885913 } +\prop_gput:Nnn \g__str_alias_prop { latin8 } { iso885914 } +\prop_gput:Nnn \g__str_alias_prop { latin9 } { iso885915 } +\prop_gput:Nnn \g__str_alias_prop { latin10 } { iso885916 } +\prop_gput:Nnn \g__str_alias_prop { utf16le } { utf16 } +\prop_gput:Nnn \g__str_alias_prop { utf16be } { utf16 } +\prop_gput:Nnn \g__str_alias_prop { utf32le } { utf32 } +\prop_gput:Nnn \g__str_alias_prop { utf32be } { utf32 } +\prop_gput:Nnn \g__str_alias_prop { hexadecimal } { hex } +\bool_new:N \g__str_error_bool +\flag_new:n { str_byte } +\flag_new:n { str_error } +\prg_new_conditional:Npnn \__str_if_contains_char:NN #1#2 { T , TF } + { + \exp_after:wN \__str_if_contains_char_aux:NN \exp_after:wN #2 + #1 { \prg_break:n { ? \fi: } } + \prg_break_point: + \prg_return_false: + } +\prg_new_conditional:Npnn \__str_if_contains_char:nN #1#2 { TF } + { + \__str_if_contains_char_aux:NN #2 #1 { \prg_break:n { ? \fi: } } + \prg_break_point: + \prg_return_false: + } +\cs_new:Npn \__str_if_contains_char_aux:NN #1#2 + { + \if_charcode:w #1 #2 + \exp_after:wN \__str_if_contains_char_true: + \fi: + \__str_if_contains_char_aux:NN #1 + } +\cs_new:Npn \__str_if_contains_char_true: + { \prg_break:n { \prg_return_true: \use_none:n } } +\prg_new_conditional:Npnn \__str_octal_use:N #1 { TF } + { + \if_int_compare:w 1 < '1 \token_to_str:N #1 \exp_stop_f: + #1 \prg_return_true: + \else: + \prg_return_false: + \fi: + } +\prg_new_conditional:Npnn \__str_hexadecimal_use:N #1 { TF } + { + \if_int_compare:w 1 < "1 \token_to_str:N #1 \exp_stop_f: + #1 \prg_return_true: + \else: + \if_case:w \int_eval:n { \exp_after:wN ` \token_to_str:N #1 - `a } + A + \or: B + \or: C + \or: D + \or: E + \or: F + \else: + \prg_return_false: + \exp_after:wN \use_none:n + \fi: + \prg_return_true: + \fi: + } +\group_begin: + \tl_set:Nx \l__str_internal_tl { \tl_to_str:n { 0123456789ABCDEF } } + \tl_map_inline:Nn \l__str_internal_tl + { + \tl_map_inline:Nn \l__str_internal_tl + { + \tl_const:cx { c__str_byte_ \int_eval:n {"#1##1} _tl } + { \char_generate:nn { "#1##1 } { 12 } #1 ##1 } + } + } +\group_end: +\tl_const:cn { c__str_byte_-1_tl } { { } \use_none:n { } } +\cs_new:Npn \__str_output_byte:n #1 + { \__str_output_byte:w #1 \__str_output_end: } +\cs_new:Npn \__str_output_byte:w + { + \exp_after:wN \exp_after:wN + \exp_after:wN \use_i:nnn + \cs:w c__str_byte_ \int_eval:w + } +\cs_new:Npn \__str_output_hexadecimal:n #1 + { + \exp_after:wN \exp_after:wN + \exp_after:wN \use_none:n + \cs:w c__str_byte_ \int_eval:n {#1} _tl \cs_end: + } +\cs_new:Npn \__str_output_end: + { \scan_stop: _tl \cs_end: } +\cs_new:Npn \__str_output_byte_pair_be:n #1 + { + \exp_args:Nf \__str_output_byte_pair:nnN + { \int_div_truncate:nn { #1 } { "100 } } {#1} \use:nn + } +\cs_new:Npn \__str_output_byte_pair_le:n #1 + { + \exp_args:Nf \__str_output_byte_pair:nnN + { \int_div_truncate:nn { #1 } { "100 } } {#1} \use_ii_i:nn + } +\cs_new:Npn \__str_output_byte_pair:nnN #1#2#3 + { + #3 + { \__str_output_byte:n { #1 } } + { \__str_output_byte:n { #2 - #1 * "100 } } + } +\cs_new_protected:Npn \__str_convert_gmap:N #1 + { + \tl_gset:Nx \g__str_result_tl + { + \exp_after:wN \__str_convert_gmap_loop:NN + \exp_after:wN #1 + \g__str_result_tl { ? \prg_break: } + \prg_break_point: + } + } +\cs_new:Npn \__str_convert_gmap_loop:NN #1#2 + { + \use_none:n #2 + #1#2 + \__str_convert_gmap_loop:NN #1 + } +\cs_new_protected:Npn \__str_convert_gmap_internal:N #1 + { + \tl_gset:Nx \g__str_result_tl + { + \exp_after:wN \__str_convert_gmap_internal_loop:Nww + \exp_after:wN #1 + \g__str_result_tl \s__tl \q_stop \prg_break: \s__tl + \prg_break_point: + } + } +\cs_new:Npn \__str_convert_gmap_internal_loop:Nww #1 #2 \s__tl #3 \s__tl + { + \use_none_delimit_by_q_stop:w #3 \q_stop + #1 {#3} + \__str_convert_gmap_internal_loop:Nww #1 + } +\cs_new_protected:Npn \__str_if_flag_error:nnx #1 + { + \flag_if_raised:nTF {#1} + { \__kernel_msg_error:nnx { str } } + { \use_none:nn } + } +\cs_new_protected:Npn \__str_if_flag_no_error:nnx #1#2#3 + { \flag_if_raised:nT {#1} { \bool_gset_true:N \g__str_error_bool } } +\cs_new:Npn \__str_if_flag_times:nT #1#2 + { \flag_if_raised:nT {#1} { #2~(x \flag_height:n {#1} ) } } +\cs_new_protected:Npn \str_set_convert:Nnnn + { \__str_convert:nNNnnn { } \tl_set_eq:NN } +\cs_new_protected:Npn \str_gset_convert:Nnnn + { \__str_convert:nNNnnn { } \tl_gset_eq:NN } +\prg_new_protected_conditional:Npnn + \str_set_convert:Nnnn #1#2#3#4 { T , F , TF } + { + \bool_gset_false:N \g__str_error_bool + \__str_convert:nNNnnn + { \cs_set_eq:NN \__str_if_flag_error:nnx \__str_if_flag_no_error:nnx } + \tl_set_eq:NN #1 {#2} {#3} {#4} + \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true: + } +\prg_new_protected_conditional:Npnn + \str_gset_convert:Nnnn #1#2#3#4 { T , F , TF } + { + \bool_gset_false:N \g__str_error_bool + \__str_convert:nNNnnn + { \cs_set_eq:NN \__str_if_flag_error:nnx \__str_if_flag_no_error:nnx } + \tl_gset_eq:NN #1 {#2} {#3} {#4} + \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true: + } +\cs_new_protected:Npn \__str_convert:nNNnnn #1#2#3#4#5#6 + { + \group_begin: + #1 + \tl_gset:Nx \g__str_result_tl { \__kernel_str_to_other_fast:n {#4} } + \exp_after:wN \__str_convert:wwwnn + \tl_to_str:n {#5} /// \q_stop + { decode } { unescape } + \prg_do_nothing: + \__str_convert_decode_: + \exp_after:wN \__str_convert:wwwnn + \tl_to_str:n {#6} /// \q_stop + { encode } { escape } + \use_ii_i:nn + \__str_convert_encode_: + \group_end: + #2 #3 \g__str_result_tl + } +\cs_new_protected:Npn \__str_convert:wwwnn + #1 / #2 // #3 \q_stop #4#5 + { + \__str_convert:nnn {enc} {#4} {#1} + \__str_convert:nnn {esc} {#5} {#2} + \exp_args:Ncc \__str_convert:NNnNN + { __str_convert_#4_#1: } { __str_convert_#5_#2: } {#2} + } +\cs_new_protected:Npn \__str_convert:NNnNN #1#2#3#4#5 + { + \if_meaning:w #1 #5 + \tl_if_empty:nF {#3} + { \__kernel_msg_error:nnx { str } { native-escaping } {#3} } + #1 + \else: + #4 #2 #1 + \fi: + } +\cs_new_protected:Npn \__str_convert:nnn #1#2#3 + { + \cs_if_exist:cF { __str_convert_#2_#3: } + { + \exp_args:Nx \__str_convert:nnnn + { \__str_convert_lowercase_alphanum:n {#3} } + {#1} {#2} {#3} + } + } +\cs_new_protected:Npn \__str_convert:nnnn #1#2#3#4 + { + \cs_if_exist:cF { __str_convert_#3_#1: } + { + \prop_get:NnNF \g__str_alias_prop {#1} \l__str_internal_tl + { \tl_set:Nn \l__str_internal_tl {#1} } + \cs_if_exist:cF { __str_convert_#3_ \l__str_internal_tl : } + { + \file_if_exist:nTF { l3str-#2- \l__str_internal_tl .def } + { + \group_begin: + \__str_load_catcodes: + \file_input:n { l3str-#2- \l__str_internal_tl .def } + \group_end: + } + { + \tl_clear:N \l__str_internal_tl + \__kernel_msg_error:nnxx { str } { unknown-#2 } {#4} {#1} + } + } + \cs_if_exist:cF { __str_convert_#3_#1: } + { + \cs_gset_eq:cc { __str_convert_#3_#1: } + { __str_convert_#3_ \l__str_internal_tl : } + } + } + \cs_gset_eq:cc { __str_convert_#3_#4: } { __str_convert_#3_#1: } + } +\cs_new:Npn \__str_convert_lowercase_alphanum:n #1 + { + \exp_after:wN \__str_convert_lowercase_alphanum_loop:N + \tl_to_str:n {#1} { ? \prg_break: } + \prg_break_point: + } +\cs_new:Npn \__str_convert_lowercase_alphanum_loop:N #1 + { + \use_none:n #1 + \if_int_compare:w `#1 > `Z \exp_stop_f: + \if_int_compare:w `#1 > `z \exp_stop_f: \else: + \if_int_compare:w `#1 < `a \exp_stop_f: \else: + #1 + \fi: + \fi: + \else: + \if_int_compare:w `#1 < `A \exp_stop_f: + \if_int_compare:w 1 < 1#1 \exp_stop_f: + #1 + \fi: + \else: + \__str_output_byte:n { `#1 + `a - `A } + \fi: + \fi: + \__str_convert_lowercase_alphanum_loop:N + } +\cs_new_protected:Npn \__str_load_catcodes: + { + \char_set_catcode_escape:N \\ + \char_set_catcode_group_begin:N \{ + \char_set_catcode_group_end:N \} + \char_set_catcode_math_toggle:N \$ + \char_set_catcode_alignment:N \& + \char_set_catcode_parameter:N \# + \char_set_catcode_math_superscript:N \^ + \char_set_catcode_ignore:N \ % + \char_set_catcode_space:N \~ + \tl_map_function:nN { abcdefghijklmnopqrstuvwxyz_:ABCDEFILNPSTUX } + \char_set_catcode_letter:N + \tl_map_function:nN { 0123456789"'?*+-.(),`!/<>[];= } + \char_set_catcode_other:N + \char_set_catcode_comment:N \% + \int_set:Nn \tex_endlinechar:D {32} + } +\bool_lazy_any:nTF + { + \sys_if_engine_luatex_p: + \sys_if_engine_xetex_p: + } + { + \cs_new:Npn \__str_filter_bytes:n #1 + { + \__str_filter_bytes_aux:N #1 + { ? \prg_break: } + \prg_break_point: + } + \cs_new:Npn \__str_filter_bytes_aux:N #1 + { + \use_none:n #1 + \if_int_compare:w `#1 < 256 \exp_stop_f: + #1 + \else: + \flag_raise:n { str_byte } + \fi: + \__str_filter_bytes_aux:N + } + } + { \cs_new_eq:NN \__str_filter_bytes:n \use:n } +\bool_lazy_any:nTF + { + \sys_if_engine_luatex_p: + \sys_if_engine_xetex_p: + } + { + \cs_new_protected:Npn \__str_convert_unescape_: + { + \flag_clear:n { str_byte } + \tl_gset:Nx \g__str_result_tl + { \exp_args:No \__str_filter_bytes:n \g__str_result_tl } + \__str_if_flag_error:nnx { str_byte } { non-byte } { bytes } + } + } + { \cs_new_protected:Npn \__str_convert_unescape_: { } } +\cs_new_eq:NN \__str_convert_unescape_bytes: \__str_convert_unescape_: +\cs_new_protected:Npn \__str_convert_escape_: { } +\cs_new_eq:NN \__str_convert_escape_bytes: \__str_convert_escape_: +\cs_new_protected:Npn \__str_convert_decode_: + { \__str_convert_gmap:N \__str_decode_native_char:N } +\cs_new:Npn \__str_decode_native_char:N #1 + { #1 \s__tl \int_value:w `#1 \s__tl } +\bool_lazy_any:nTF + { + \sys_if_engine_luatex_p: + \sys_if_engine_xetex_p: + } + { + \cs_new_protected:Npn \__str_convert_encode_: + { \__str_convert_gmap_internal:N \__str_encode_native_char:n } + \cs_new:Npn \__str_encode_native_char:n #1 + { \char_generate:nn {#1} {12} } + } + { + \cs_new_protected:Npn \__str_convert_encode_: + { + \flag_clear:n { str_error } + \__str_convert_gmap_internal:N \__str_encode_native_char:n + \__str_if_flag_error:nnx { str_error } + { native-overflow } { } + } + \cs_new:Npn \__str_encode_native_char:n #1 + { + \if_int_compare:w #1 > \c__str_max_byte_int + \flag_raise:n { str_error } + ? + \else: + \char_generate:nn {#1} {12} + \fi: + } + \__kernel_msg_new:nnnn { str } { native-overflow } + { Character~code~too~large~for~this~engine. } + { + This~engine~only~support~8-bit~characters:~ + valid~character~codes~are~in~the~range~[0,255].~ + To~manipulate~arbitrary~Unicode,~use~LuaTeX~or~XeTeX. + } + } +\cs_new_protected:Npn \__str_convert_decode_clist: + { + \clist_gset:No \g__str_result_tl \g__str_result_tl + \tl_gset:Nx \g__str_result_tl + { + \exp_args:No \clist_map_function:nN + \g__str_result_tl \__str_decode_clist_char:n + } + } +\cs_new:Npn \__str_decode_clist_char:n #1 + { #1 \s__tl \int_eval:n {#1} \s__tl } +\cs_new_protected:Npn \__str_convert_encode_clist: + { + \__str_convert_gmap_internal:N \__str_encode_clist_char:n + \tl_gset:Nx \g__str_result_tl { \tl_tail:N \g__str_result_tl } + } +\cs_new:Npn \__str_encode_clist_char:n #1 { , #1 } +\cs_new_protected:Npn \str_declare_eight_bit_encoding:nnn #1#2#3 + { + \tl_set:Nn \l__str_internal_tl {#1} + \cs_new_protected:cpn { __str_convert_decode_#1: } + { \__str_convert_decode_eight_bit:n {#1} } + \cs_new_protected:cpn { __str_convert_encode_#1: } + { \__str_convert_encode_eight_bit:n {#1} } + \tl_const:cn { c__str_encoding_#1_tl } {#2} + \tl_const:cn { c__str_encoding_#1_missing_tl } {#3} + } +\cs_new_protected:Npn \__str_convert_decode_eight_bit:n #1 + { + \group_begin: + \int_zero:N \l__str_internal_int + \exp_last_unbraced:Nx \__str_decode_eight_bit_load:nn + { \tl_use:c { c__str_encoding_#1_tl } } + { \q_stop \prg_break: } { } + \prg_break_point: + \exp_last_unbraced:Nx \__str_decode_eight_bit_load_missing:n + { \tl_use:c { c__str_encoding_#1_missing_tl } } + { \q_stop \prg_break: } + \prg_break_point: + \flag_clear:n { str_error } + \__str_convert_gmap:N \__str_decode_eight_bit_char:N + \__str_if_flag_error:nnx { str_error } { decode-8-bit } {#1} + \group_end: + } +\cs_new_protected:Npn \__str_decode_eight_bit_load:nn #1#2 + { + \use_none_delimit_by_q_stop:w #1 \q_stop + \tex_dimen:D "#1 = \l__str_internal_int sp \scan_stop: + \tex_skip:D \l__str_internal_int = "#1 sp \scan_stop: + \tex_toks:D \l__str_internal_int \exp_after:wN { \int_value:w "#2 } + \int_incr:N \l__str_internal_int + \__str_decode_eight_bit_load:nn + } +\cs_new_protected:Npn \__str_decode_eight_bit_load_missing:n #1 + { + \use_none_delimit_by_q_stop:w #1 \q_stop + \tex_dimen:D "#1 = \l__str_internal_int sp \scan_stop: + \tex_skip:D \l__str_internal_int = "#1 sp \scan_stop: + \tex_toks:D \l__str_internal_int \exp_after:wN + { \int_use:N \c__str_replacement_char_int } + \int_incr:N \l__str_internal_int + \__str_decode_eight_bit_load_missing:n + } +\cs_new:Npn \__str_decode_eight_bit_char:N #1 + { + #1 \s__tl + \if_int_compare:w \tex_dimen:D `#1 < \l__str_internal_int + \if_int_compare:w \tex_skip:D \tex_dimen:D `#1 = `#1 \exp_stop_f: + \tex_the:D \tex_toks:D \tex_dimen:D + \fi: + \fi: + \int_value:w `#1 \s__tl + } +\cs_new_protected:Npn \__str_convert_encode_eight_bit:n #1 + { + \group_begin: + \int_zero:N \l__str_internal_int + \exp_last_unbraced:Nx \__str_encode_eight_bit_load:nn + { \tl_use:c { c__str_encoding_#1_tl } } + { \q_stop \prg_break: } { } + \prg_break_point: + \flag_clear:n { str_error } + \__str_convert_gmap_internal:N \__str_encode_eight_bit_char:n + \__str_if_flag_error:nnx { str_error } { encode-8-bit } {#1} + \group_end: + } +\cs_new_protected:Npn \__str_encode_eight_bit_load:nn #1#2 + { + \use_none_delimit_by_q_stop:w #1 \q_stop + \tex_dimen:D "#2 = \l__str_internal_int sp \scan_stop: + \tex_skip:D \l__str_internal_int = "#2 sp \scan_stop: + \exp_args:NNf \tex_toks:D \l__str_internal_int + { \__str_output_byte:n { "#1 } } + \int_incr:N \l__str_internal_int + \__str_encode_eight_bit_load:nn + } +\cs_new:Npn \__str_encode_eight_bit_char:n #1 + { + \if_int_compare:w #1 > \c_max_register_int + \flag_raise:n { str_error } + \else: + \if_int_compare:w \tex_dimen:D #1 < \l__str_internal_int + \if_int_compare:w \tex_skip:D \tex_dimen:D #1 = #1 \exp_stop_f: + \tex_the:D \tex_toks:D \tex_dimen:D #1 \exp_stop_f: + \exp_after:wN \exp_after:wN \exp_after:wN \use_none:nn + \fi: + \fi: + \__str_encode_eight_bit_char_aux:n {#1} + \fi: + } +\cs_new:Npn \__str_encode_eight_bit_char_aux:n #1 + { + \if_int_compare:w #1 > \c__str_max_byte_int + \flag_raise:n { str_error } + \else: + \__str_output_byte:n {#1} + \fi: + } +\__kernel_msg_new:nnn { str } { unknown-esc } + { Escaping~scheme~'#1'~(filtered:~'#2')~unknown. } +\__kernel_msg_new:nnn { str } { unknown-enc } + { Encoding~scheme~'#1'~(filtered:~'#2')~unknown. } +\__kernel_msg_new:nnnn { str } { native-escaping } + { The~'native'~encoding~scheme~does~not~support~any~escaping. } + { + Since~native~strings~do~not~consist~in~bytes,~ + none~of~the~escaping~methods~make~sense.~ + The~specified~escaping,~'#1',~will be ignored. + } +\__kernel_msg_new:nnn { str } { file-not-found } + { File~'l3str-#1.def'~not~found. } +\bool_lazy_any:nT + { + \sys_if_engine_luatex_p: + \sys_if_engine_xetex_p: + } + { + \__kernel_msg_new:nnnn { str } { non-byte } + { String~invalid~in~escaping~'#1':~it~may~only~contain~bytes. } + { + Some~characters~in~the~string~you~asked~to~convert~are~not~ + 8-bit~characters.~Perhaps~the~string~is~a~'native'~Unicode~string?~ + If~it~is,~try~using\\ + \\ + \iow_indent:n + { + \iow_char:N\\str_set_convert:Nnnn \\ + \ \ <str~var>~\{~<string>~\}~\{~native~\}~\{~<target~encoding>~\} + } + } + } +\__kernel_msg_new:nnnn { str } { decode-8-bit } + { Invalid~string~in~encoding~'#1'. } + { + LaTeX~came~across~a~byte~which~is~not~defined~to~represent~ + any~character~in~the~encoding~'#1'. + } +\__kernel_msg_new:nnnn { str } { encode-8-bit } + { Unicode~string~cannot~be~converted~to~encoding~'#1'. } + { + The~encoding~'#1'~only~contains~a~subset~of~all~Unicode~characters.~ + LaTeX~was~asked~to~convert~a~string~to~that~encoding,~but~that~ + string~contains~a~character~that~'#1'~does~not~support. + } +\cs_new_protected:Npn \__str_convert_unescape_hex: + { + \group_begin: + \flag_clear:n { str_error } + \int_set:Nn \tex_escapechar:D { 92 } + \tl_gset:Nx \g__str_result_tl + { + \__str_output_byte:w " + \exp_last_unbraced:Nf \__str_unescape_hex_auxi:N + { \tl_to_str:N \g__str_result_tl } + 0 { ? 0 - 1 \prg_break: } + \prg_break_point: + \__str_output_end: + } + \__str_if_flag_error:nnx { str_error } { unescape-hex } { } + \group_end: + } +\cs_new:Npn \__str_unescape_hex_auxi:N #1 + { + \use_none:n #1 + \__str_hexadecimal_use:NTF #1 + { \__str_unescape_hex_auxii:N } + { + \flag_raise:n { str_error } + \__str_unescape_hex_auxi:N + } + } +\cs_new:Npn \__str_unescape_hex_auxii:N #1 + { + \use_none:n #1 + \__str_hexadecimal_use:NTF #1 + { + \__str_output_end: + \__str_output_byte:w " \__str_unescape_hex_auxi:N + } + { + \flag_raise:n { str_error } + \__str_unescape_hex_auxii:N + } + } +\__kernel_msg_new:nnnn { str } { unescape-hex } + { String~invalid~in~escaping~'hex':~only~hexadecimal~digits~allowed. } + { + Some~characters~in~the~string~you~asked~to~convert~are~not~ + hexadecimal~digits~(0-9,~A-F,~a-f)~nor~spaces. + } +\cs_set_protected:Npn \__str_tmp:w #1#2#3 + { + \cs_new_protected:cpn { __str_convert_unescape_#2: } + { + \group_begin: + \flag_clear:n { str_byte } + \flag_clear:n { str_error } + \int_set:Nn \tex_escapechar:D { 92 } + \tl_gset:Nx \g__str_result_tl + { + \exp_after:wN #3 \g__str_result_tl + #1 ? { ? \prg_break: } + \prg_break_point: + } + \__str_if_flag_error:nnx { str_byte } { non-byte } { #2 } + \__str_if_flag_error:nnx { str_error } { unescape-#2 } { } + \group_end: + } + \cs_new:Npn #3 ##1#1##2##3 + { + \__str_filter_bytes:n {##1} + \use_none:n ##3 + \__str_output_byte:w " + \__str_hexadecimal_use:NTF ##2 + { + \__str_hexadecimal_use:NTF ##3 + { } + { + \flag_raise:n { str_error } + * 0 + `#1 \use_i:nn + } + } + { + \flag_raise:n { str_error } + 0 + `#1 \use_i:nn + } + \__str_output_end: + \use_i:nnn #3 ##2##3 + } + \__kernel_msg_new:nnnn { str } { unescape-#2 } + { String~invalid~in~escaping~'#2'. } + { + LaTeX~came~across~the~escape~character~'#1'~not~followed~by~ + two~hexadecimal~digits.~This~is~invalid~in~the~escaping~'#2'. + } + } +\exp_after:wN \__str_tmp:w \c_hash_str { name } + \__str_unescape_name_loop:wNN +\exp_after:wN \__str_tmp:w \c_percent_str { url } + \__str_unescape_url_loop:wNN +\group_begin: + \char_set_catcode_other:N \^^J + \char_set_catcode_other:N \^^M + \cs_set_protected:Npn \__str_tmp:w #1 + { + \cs_new_protected:Npn \__str_convert_unescape_string: + { + \group_begin: + \flag_clear:n { str_byte } + \flag_clear:n { str_error } + \int_set:Nn \tex_escapechar:D { 92 } + \tl_gset:Nx \g__str_result_tl + { + \exp_after:wN \__str_unescape_string_newlines:wN + \g__str_result_tl \prg_break: ^^M ? + \prg_break_point: + } + \tl_gset:Nx \g__str_result_tl + { + \exp_after:wN \__str_unescape_string_loop:wNNN + \g__str_result_tl #1 ?? { ? \prg_break: } + \prg_break_point: + } + \__str_if_flag_error:nnx { str_byte } { non-byte } { string } + \__str_if_flag_error:nnx { str_error } { unescape-string } { } + \group_end: + } + } + \exp_args:No \__str_tmp:w { \c_backslash_str } + \exp_last_unbraced:NNNNo + \cs_new:Npn \__str_unescape_string_loop:wNNN #1 \c_backslash_str #2#3#4 + { + \__str_filter_bytes:n {#1} + \use_none:n #4 + \__str_output_byte:w ' + \__str_octal_use:NTF #2 + { + \__str_octal_use:NTF #3 + { + \__str_octal_use:NTF #4 + { + \if_int_compare:w #2 > 3 \exp_stop_f: + - 256 + \fi: + \__str_unescape_string_repeat:NNNNNN + } + { \__str_unescape_string_repeat:NNNNNN ? } + } + { \__str_unescape_string_repeat:NNNNNN ?? } + } + { + \str_case_e:nnF {#2} + { + { \c_backslash_str } { 134 } + { ( } { 50 } + { ) } { 51 } + { r } { 15 } + { f } { 14 } + { n } { 12 } + { t } { 11 } + { b } { 10 } + { ^^J } { 0 - 1 } + } + { + \flag_raise:n { str_error } + 0 - 1 \use_i:nn + } + } + \__str_output_end: + \use_i:nn \__str_unescape_string_loop:wNNN #2#3#4 + } + \cs_new:Npn \__str_unescape_string_repeat:NNNNNN #1#2#3#4#5#6 + { \__str_output_end: \__str_unescape_string_loop:wNNN } + \cs_new:Npn \__str_unescape_string_newlines:wN #1 ^^M #2 + { + #1 + \if_charcode:w ^^J #2 \else: ^^J \fi: + \__str_unescape_string_newlines:wN #2 + } + \__kernel_msg_new:nnnn { str } { unescape-string } + { String~invalid~in~escaping~'string'. } + { + LaTeX~came~across~an~escape~character~'\c_backslash_str'~ + not~followed~by~any~of:~'n',~'r',~'t',~'b',~'f',~'(',~')',~ + '\c_backslash_str',~one~to~three~octal~digits,~or~the~end~ + of~a~line. + } +\group_end: +\cs_new_protected:Npn \__str_convert_escape_hex: + { \__str_convert_gmap:N \__str_escape_hex_char:N } +\cs_new:Npn \__str_escape_hex_char:N #1 + { \__str_output_hexadecimal:n { `#1 } } +\str_const:Nn \c__str_escape_name_not_str { ! " $ & ' } %$ +\str_const:Nn \c__str_escape_name_str { {}/<>[] } +\cs_new_protected:Npn \__str_convert_escape_name: + { \__str_convert_gmap:N \__str_escape_name_char:N } +\cs_new:Npn \__str_escape_name_char:N #1 + { + \__str_if_escape_name:NTF #1 {#1} + { \c_hash_str \__str_output_hexadecimal:n {`#1} } + } +\prg_new_conditional:Npnn \__str_if_escape_name:N #1 { TF } + { + \if_int_compare:w `#1 < "2A \exp_stop_f: + \__str_if_contains_char:NNTF \c__str_escape_name_not_str #1 + \prg_return_true: \prg_return_false: + \else: + \if_int_compare:w `#1 > "7E \exp_stop_f: + \prg_return_false: + \else: + \__str_if_contains_char:NNTF \c__str_escape_name_str #1 + \prg_return_false: \prg_return_true: + \fi: + \fi: + } +\str_const:Nx \c__str_escape_string_str + { \c_backslash_str ( ) } +\cs_new_protected:Npn \__str_convert_escape_string: + { \__str_convert_gmap:N \__str_escape_string_char:N } +\cs_new:Npn \__str_escape_string_char:N #1 + { + \__str_if_escape_string:NTF #1 + { + \__str_if_contains_char:NNT + \c__str_escape_string_str #1 + { \c_backslash_str } + #1 + } + { + \c_backslash_str + \int_div_truncate:nn {`#1} {64} + \int_mod:nn { \int_div_truncate:nn {`#1} { 8 } } { 8 } + \int_mod:nn {`#1} { 8 } + } + } +\prg_new_conditional:Npnn \__str_if_escape_string:N #1 { TF } + { + \if_int_compare:w `#1 < "21 \exp_stop_f: + \prg_return_false: + \else: + \if_int_compare:w `#1 > "7E \exp_stop_f: + \prg_return_false: + \else: + \prg_return_true: + \fi: + \fi: + } +\cs_new_protected:Npn \__str_convert_escape_url: + { \__str_convert_gmap:N \__str_escape_url_char:N } +\cs_new:Npn \__str_escape_url_char:N #1 + { + \__str_if_escape_url:NTF #1 {#1} + { \c_percent_str \__str_output_hexadecimal:n { `#1 } } + } +\prg_new_conditional:Npnn \__str_if_escape_url:N #1 { TF } + { + \if_int_compare:w `#1 < "41 \exp_stop_f: + \__str_if_contains_char:nNTF { "-.<> } #1 + \prg_return_true: \prg_return_false: + \else: + \if_int_compare:w `#1 > "7E \exp_stop_f: + \prg_return_false: + \else: + \__str_if_contains_char:nNTF { [ ] } #1 + \prg_return_false: \prg_return_true: + \fi: + \fi: + } +\cs_new_protected:cpn { __str_convert_encode_utf8: } + { \__str_convert_gmap_internal:N \__str_encode_utf_viii_char:n } +\cs_new:Npn \__str_encode_utf_viii_char:n #1 + { + \__str_encode_utf_viii_loop:wwnnw #1 ; - 1 + 0 * ; + { 128 } { 0 } + { 32 } { 192 } + { 16 } { 224 } + { 8 } { 240 } + \q_stop + } +\cs_new:Npn \__str_encode_utf_viii_loop:wwnnw #1; #2; #3#4 #5 \q_stop + { + \if_int_compare:w #1 < #3 \exp_stop_f: + \__str_output_byte:n { #1 + #4 } + \exp_after:wN \use_none_delimit_by_q_stop:w + \fi: + \exp_after:wN \__str_encode_utf_viii_loop:wwnnw + \int_value:w \int_div_truncate:nn {#1} {64} ; #1 ; + #5 \q_stop + \__str_output_byte:n { #2 - 64 * ( #1 - 2 ) } + } +\flag_clear_new:n { str_missing } +\flag_clear_new:n { str_extra } +\flag_clear_new:n { str_overlong } +\flag_clear_new:n { str_overflow } +\__kernel_msg_new:nnnn { str } { utf8-decode } + { + Invalid~UTF-8~string: + \exp_last_unbraced:Nf \use_none:n + { + \__str_if_flag_times:nT { str_missing } { ,~missing~continuation~byte } + \__str_if_flag_times:nT { str_extra } { ,~extra~continuation~byte } + \__str_if_flag_times:nT { str_overlong } { ,~overlong~form } + \__str_if_flag_times:nT { str_overflow } { ,~code~point~too~large } + } + . + } + { + In~the~UTF-8~encoding,~each~Unicode~character~consists~in~ + 1~to~4~bytes,~with~the~following~bit~pattern: \\ + \iow_indent:n + { + Code~point~\ \ \ \ <~128:~0xxxxxxx \\ + Code~point~\ \ \ <~2048:~110xxxxx~10xxxxxx \\ + Code~point~\ \ <~65536:~1110xxxx~10xxxxxx~10xxxxxx \\ + Code~point~ <~1114112:~11110xxx~10xxxxxx~10xxxxxx~10xxxxxx \\ + } + Bytes~of~the~form~10xxxxxx~are~called~continuation~bytes. + \flag_if_raised:nT { str_missing } + { + \\\\ + A~leading~byte~(in~the~range~[192,255])~was~not~followed~by~ + the~appropriate~number~of~continuation~bytes. + } + \flag_if_raised:nT { str_extra } + { + \\\\ + LaTeX~came~across~a~continuation~byte~when~it~was~not~expected. + } + \flag_if_raised:nT { str_overlong } + { + \\\\ + Every~Unicode~code~point~must~be~expressed~in~the~shortest~ + possible~form.~For~instance,~'0xC0'~'0x83'~is~not~a~valid~ + representation~for~the~code~point~3. + } + \flag_if_raised:nT { str_overflow } + { + \\\\ + Unicode~limits~code~points~to~the~range~[0,1114111]. + } + } +\cs_new_protected:cpn { __str_convert_decode_utf8: } + { + \flag_clear:n { str_error } + \flag_clear:n { str_missing } + \flag_clear:n { str_extra } + \flag_clear:n { str_overlong } + \flag_clear:n { str_overflow } + \tl_gset:Nx \g__str_result_tl + { + \exp_after:wN \__str_decode_utf_viii_start:N \g__str_result_tl + { \prg_break: \__str_decode_utf_viii_end: } + \prg_break_point: + } + \__str_if_flag_error:nnx { str_error } { utf8-decode } { } + } +\cs_new:Npn \__str_decode_utf_viii_start:N #1 + { + #1 + \if_int_compare:w `#1 < "C0 \exp_stop_f: + \s__tl + \if_int_compare:w `#1 < "80 \exp_stop_f: + \int_value:w `#1 + \else: + \flag_raise:n { str_extra } + \flag_raise:n { str_error } + \int_use:N \c__str_replacement_char_int + \fi: + \else: + \exp_after:wN \__str_decode_utf_viii_continuation:wwN + \int_value:w \int_eval:n { `#1 - "C0 } \exp_after:wN + \fi: + \s__tl + \use_none_delimit_by_q_stop:w {"80} {"800} {"10000} {"110000} \q_stop + \__str_decode_utf_viii_start:N + } +\cs_new:Npn \__str_decode_utf_viii_continuation:wwN + #1 \s__tl #2 \__str_decode_utf_viii_start:N #3 + { + \use_none:n #3 + \if_int_compare:w `#3 < + \if_int_compare:w `#3 < "80 \exp_stop_f: - \fi: + "C0 \exp_stop_f: + #3 + \exp_after:wN \__str_decode_utf_viii_aux:wNnnwN + \int_value:w \int_eval:n { #1 * "40 + `#3 - "80 } \exp_after:wN + \else: + \s__tl + \flag_raise:n { str_missing } + \flag_raise:n { str_error } + \int_use:N \c__str_replacement_char_int + \fi: + \s__tl + #2 + \__str_decode_utf_viii_start:N #3 + } +\cs_new:Npn \__str_decode_utf_viii_aux:wNnnwN + #1 \s__tl #2#3#4 #5 \__str_decode_utf_viii_start:N #6 + { + \if_int_compare:w #1 < #4 \exp_stop_f: + \s__tl + \if_int_compare:w #1 < #3 \exp_stop_f: + \flag_raise:n { str_overlong } + \flag_raise:n { str_error } + \int_use:N \c__str_replacement_char_int + \else: + #1 + \fi: + \else: + \if_meaning:w \q_stop #5 + \__str_decode_utf_viii_overflow:w #1 + \fi: + \exp_after:wN \__str_decode_utf_viii_continuation:wwN + \int_value:w \int_eval:n { #1 - #4 } \exp_after:wN + \fi: + \s__tl + #2 {#4} #5 + \__str_decode_utf_viii_start:N + } +\cs_new:Npn \__str_decode_utf_viii_overflow:w #1 \fi: #2 \fi: + { + \fi: \fi: + \flag_raise:n { str_overflow } + \flag_raise:n { str_error } + \int_use:N \c__str_replacement_char_int + } +\cs_new:Npn \__str_decode_utf_viii_end: + { + \s__tl + \flag_raise:n { str_missing } + \flag_raise:n { str_error } + \int_use:N \c__str_replacement_char_int \s__tl + \prg_break: + } +\group_begin: + \char_set_catcode_other:N \^^fe + \char_set_catcode_other:N \^^ff + \cs_new_protected:cpn { __str_convert_encode_utf16: } + { + \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_be:n + \tl_gput_left:Nx \g__str_result_tl { ^^fe ^^ff } + } + \cs_new_protected:cpn { __str_convert_encode_utf16be: } + { \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_be:n } + \cs_new_protected:cpn { __str_convert_encode_utf16le: } + { \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_le:n } + \cs_new_protected:Npn \__str_encode_utf_xvi_aux:N #1 + { + \flag_clear:n { str_error } + \cs_set_eq:NN \__str_tmp:w #1 + \__str_convert_gmap_internal:N \__str_encode_utf_xvi_char:n + \__str_if_flag_error:nnx { str_error } { utf16-encode } { } + } + \cs_new:Npn \__str_encode_utf_xvi_char:n #1 + { + \if_int_compare:w #1 < "D800 \exp_stop_f: + \__str_tmp:w {#1} + \else: + \if_int_compare:w #1 < "10000 \exp_stop_f: + \if_int_compare:w #1 < "E000 \exp_stop_f: + \flag_raise:n { str_error } + \__str_tmp:w { \c__str_replacement_char_int } + \else: + \__str_tmp:w {#1} + \fi: + \else: + \exp_args:Nf \__str_tmp:w { \int_div_truncate:nn {#1} {"400} + "D7C0 } + \exp_args:Nf \__str_tmp:w { \int_mod:nn {#1} {"400} + "DC00 } + \fi: + \fi: + } + \flag_clear_new:n { str_missing } + \flag_clear_new:n { str_extra } + \flag_clear_new:n { str_end } + \__kernel_msg_new:nnnn { str } { utf16-encode } + { Unicode~string~cannot~be~expressed~in~UTF-16:~surrogate. } + { + Surrogate~code~points~(in~the~range~[U+D800,~U+DFFF])~ + can~be~expressed~in~the~UTF-8~and~UTF-32~encodings,~ + but~not~in~the~UTF-16~encoding. + } + \__kernel_msg_new:nnnn { str } { utf16-decode } + { + Invalid~UTF-16~string: + \exp_last_unbraced:Nf \use_none:n + { + \__str_if_flag_times:nT { str_missing } { ,~missing~trail~surrogate } + \__str_if_flag_times:nT { str_extra } { ,~extra~trail~surrogate } + \__str_if_flag_times:nT { str_end } { ,~odd~number~of~bytes } + } + . + } + { + In~the~UTF-16~encoding,~each~Unicode~character~is~encoded~as~ + 2~or~4~bytes: \\ + \iow_indent:n + { + Code~point~in~[U+0000,~U+D7FF]:~two~bytes \\ + Code~point~in~[U+D800,~U+DFFF]:~illegal \\ + Code~point~in~[U+E000,~U+FFFF]:~two~bytes \\ + Code~point~in~[U+10000,~U+10FFFF]:~ + a~lead~surrogate~and~a~trail~surrogate \\ + } + Lead~surrogates~are~pairs~of~bytes~in~the~range~[0xD800,~0xDBFF],~ + and~trail~surrogates~are~in~the~range~[0xDC00,~0xDFFF]. + \flag_if_raised:nT { str_missing } + { + \\\\ + A~lead~surrogate~was~not~followed~by~a~trail~surrogate. + } + \flag_if_raised:nT { str_extra } + { + \\\\ + LaTeX~came~across~a~trail~surrogate~when~it~was~not~expected. + } + \flag_if_raised:nT { str_end } + { + \\\\ + The~string~contained~an~odd~number~of~bytes.~This~is~invalid:~ + the~basic~code~unit~for~UTF-16~is~16~bits~(2~bytes). + } + } + \cs_new_protected:cpn { __str_convert_decode_utf16be: } + { \__str_decode_utf_xvi:Nw 1 \g__str_result_tl \s_stop } + \cs_new_protected:cpn { __str_convert_decode_utf16le: } + { \__str_decode_utf_xvi:Nw 2 \g__str_result_tl \s_stop } + \cs_new_protected:cpn { __str_convert_decode_utf16: } + { + \exp_after:wN \__str_decode_utf_xvi_bom:NN + \g__str_result_tl \s_stop \s_stop \s_stop + } + \cs_new_protected:Npn \__str_decode_utf_xvi_bom:NN #1#2 + { + \str_if_eq:nnTF { #1#2 } { ^^ff ^^fe } + { \__str_decode_utf_xvi:Nw 2 } + { + \str_if_eq:nnTF { #1#2 } { ^^fe ^^ff } + { \__str_decode_utf_xvi:Nw 1 } + { \__str_decode_utf_xvi:Nw 1 #1#2 } + } + } + \cs_new_protected:Npn \__str_decode_utf_xvi:Nw #1#2 \s_stop + { + \flag_clear:n { str_error } + \flag_clear:n { str_missing } + \flag_clear:n { str_extra } + \flag_clear:n { str_end } + \cs_set:Npn \__str_tmp:w ##1 ##2 { ` ## #1 } + \tl_gset:Nx \g__str_result_tl + { + \exp_after:wN \__str_decode_utf_xvi_pair:NN + #2 \q_nil \q_nil + \prg_break_point: + } + \__str_if_flag_error:nnx { str_error } { utf16-decode } { } + } + \cs_new:Npn \__str_decode_utf_xvi_pair:NN #1#2 + { + \if_meaning:w \q_nil #2 + \__str_decode_utf_xvi_pair_end:Nw #1 + \fi: + \if_case:w + \int_eval:n { ( \__str_tmp:w #1#2 - "D6 ) / 4 } \scan_stop: + \or: \exp_after:wN \__str_decode_utf_xvi_quad:NNwNN + \or: \exp_after:wN \__str_decode_utf_xvi_extra:NNw + \fi: + #1#2 \s__tl + \int_eval:n { "100 * \__str_tmp:w #1#2 + \__str_tmp:w #2#1 } \s__tl + \__str_decode_utf_xvi_pair:NN + } + \cs_new:Npn \__str_decode_utf_xvi_quad:NNwNN + #1#2 #3 \__str_decode_utf_xvi_pair:NN #4#5 + { + \if_meaning:w \q_nil #5 + \__str_decode_utf_xvi_error:nNN { missing } #1#2 + \__str_decode_utf_xvi_pair_end:Nw #4 + \fi: + \if_int_compare:w + \if_int_compare:w \__str_tmp:w #4#5 < "DC \exp_stop_f: + 0 = 1 + \else: + \__str_tmp:w #4#5 < "E0 + \fi: + \exp_stop_f: + #1 #2 #4 #5 \s__tl + \int_eval:n + { + ( "100 * \__str_tmp:w #1#2 + \__str_tmp:w #2#1 - "D7F7 ) * "400 + + "100 * \__str_tmp:w #4#5 + \__str_tmp:w #5#4 + } + \s__tl + \exp_after:wN \use_i:nnn + \else: + \__str_decode_utf_xvi_error:nNN { missing } #1#2 + \fi: + \__str_decode_utf_xvi_pair:NN #4#5 + } + \cs_new:Npn \__str_decode_utf_xvi_pair_end:Nw #1 \fi: + { + \fi: + \if_meaning:w \q_nil #1 + \else: + \__str_decode_utf_xvi_error:nNN { end } #1 \prg_do_nothing: + \fi: + \prg_break: + } + \cs_new:Npn \__str_decode_utf_xvi_extra:NNw #1#2 \s__tl #3 \s__tl + { \__str_decode_utf_xvi_error:nNN { extra } #1#2 } + \cs_new:Npn \__str_decode_utf_xvi_error:nNN #1#2#3 + { + \flag_raise:n { str_error } + \flag_raise:n { str_#1 } + #2 #3 \s__tl + \int_use:N \c__str_replacement_char_int \s__tl + } +\group_end: +\group_begin: + \char_set_catcode_other:N \^^00 + \char_set_catcode_other:N \^^fe + \char_set_catcode_other:N \^^ff + \cs_new_protected:cpn { __str_convert_encode_utf32: } + { + \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_be:n + \tl_gput_left:Nx \g__str_result_tl { ^^00 ^^00 ^^fe ^^ff } + } + \cs_new_protected:cpn { __str_convert_encode_utf32be: } + { \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_be:n } + \cs_new_protected:cpn { __str_convert_encode_utf32le: } + { \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_le:n } + \cs_new:Npn \__str_encode_utf_xxxii_be:n #1 + { + \exp_args:Nf \__str_encode_utf_xxxii_be_aux:nn + { \int_div_truncate:nn {#1} { "100 } } {#1} + } + \cs_new:Npn \__str_encode_utf_xxxii_be_aux:nn #1#2 + { + ^^00 + \__str_output_byte_pair_be:n {#1} + \__str_output_byte:n { #2 - #1 * "100 } + } + \cs_new:Npn \__str_encode_utf_xxxii_le:n #1 + { + \exp_args:Nf \__str_encode_utf_xxxii_le_aux:nn + { \int_div_truncate:nn {#1} { "100 } } {#1} + } + \cs_new:Npn \__str_encode_utf_xxxii_le_aux:nn #1#2 + { + \__str_output_byte:n { #2 - #1 * "100 } + \__str_output_byte_pair_le:n {#1} + ^^00 + } + \flag_clear_new:n { str_overflow } + \flag_clear_new:n { str_end } + \__kernel_msg_new:nnnn { str } { utf32-decode } + { + Invalid~UTF-32~string: + \exp_last_unbraced:Nf \use_none:n + { + \__str_if_flag_times:nT { str_overflow } { ,~code~point~too~large } + \__str_if_flag_times:nT { str_end } { ,~truncated~string } + } + . + } + { + In~the~UTF-32~encoding,~every~Unicode~character~ + (in~the~range~[U+0000,~U+10FFFF])~is~encoded~as~4~bytes. + \flag_if_raised:nT { str_overflow } + { + \\\\ + LaTeX~came~across~a~code~point~larger~than~1114111,~ + the~maximum~code~point~defined~by~Unicode.~ + Perhaps~the~string~was~not~encoded~in~the~UTF-32~encoding? + } + \flag_if_raised:nT { str_end } + { + \\\\ + The~length~of~the~string~is~not~a~multiple~of~4.~ + Perhaps~the~string~was~truncated? + } + } + \cs_new_protected:cpn { __str_convert_decode_utf32be: } + { \__str_decode_utf_xxxii:Nw 1 \g__str_result_tl \s_stop } + \cs_new_protected:cpn { __str_convert_decode_utf32le: } + { \__str_decode_utf_xxxii:Nw 2 \g__str_result_tl \s_stop } + \cs_new_protected:cpn { __str_convert_decode_utf32: } + { + \exp_after:wN \__str_decode_utf_xxxii_bom:NNNN \g__str_result_tl + \s_stop \s_stop \s_stop \s_stop \s_stop + } + \cs_new_protected:Npn \__str_decode_utf_xxxii_bom:NNNN #1#2#3#4 + { + \str_if_eq:nnTF { #1#2#3#4 } { ^^ff ^^fe ^^00 ^^00 } + { \__str_decode_utf_xxxii:Nw 2 } + { + \str_if_eq:nnTF { #1#2#3#4 } { ^^00 ^^00 ^^fe ^^ff } + { \__str_decode_utf_xxxii:Nw 1 } + { \__str_decode_utf_xxxii:Nw 1 #1#2#3#4 } + } + } + \cs_new_protected:Npn \__str_decode_utf_xxxii:Nw #1#2 \s_stop + { + \flag_clear:n { str_overflow } + \flag_clear:n { str_end } + \flag_clear:n { str_error } + \cs_set:Npn \__str_tmp:w ##1 ##2 { ` ## #1 } + \tl_gset:Nx \g__str_result_tl + { + \exp_after:wN \__str_decode_utf_xxxii_loop:NNNN + #2 \s_stop \s_stop \s_stop \s_stop + \prg_break_point: + } + \__str_if_flag_error:nnx { str_error } { utf32-decode } { } + } + \cs_new:Npn \__str_decode_utf_xxxii_loop:NNNN #1#2#3#4 + { + \if_meaning:w \s_stop #4 + \exp_after:wN \__str_decode_utf_xxxii_end:w + \fi: + #1#2#3#4 \s__tl + \if_int_compare:w \__str_tmp:w #1#4 > 0 \exp_stop_f: + \flag_raise:n { str_overflow } + \flag_raise:n { str_error } + \int_use:N \c__str_replacement_char_int + \else: + \if_int_compare:w \__str_tmp:w #2#3 > 16 \exp_stop_f: + \flag_raise:n { str_overflow } + \flag_raise:n { str_error } + \int_use:N \c__str_replacement_char_int + \else: + \int_eval:n + { \__str_tmp:w #2#3*"10000 + \__str_tmp:w #3#2*"100 + \__str_tmp:w #4#1 } + \fi: + \fi: + \s__tl + \__str_decode_utf_xxxii_loop:NNNN + } + \cs_new:Npn \__str_decode_utf_xxxii_end:w #1 \s_stop + { + \tl_if_empty:nF {#1} + { + \flag_raise:n { str_end } + \flag_raise:n { str_error } + #1 \s__tl + \int_use:N \c__str_replacement_char_int \s__tl + } + \prg_break: + } +\group_end: %% File: l3tl-analysis.dtx \scan_new:N \s__tl \cs_new_eq:NN \l__tl_analysis_token ? @@ -24147,7 +25465,7 @@ \tex_kern:D -\l__box_left_new_dim \hbox:n { - \driver_box_use_rotate:Nn + \__box_backend_rotate:Nn \l__box_internal_box \l__box_angle_fp } @@ -24416,7 +25734,7 @@ { \hbox_set:Nn \l__box_internal_box { - \driver_box_use_scale:Nnn + \__box_backend_scale:Nnn #1 \l__box_scale_x_fp \l__box_scale_y_fp @@ -24454,7 +25772,7 @@ \cs_new_eq:NN \color_group_end: \group_end: \cs_new_protected:Npn \color_ensure_current: { - \driver_color_pickup:N \l__color_current_tl + \__color_backend_pickup:N \l__color_current_tl \__color_select:V \l__color_current_tl } \cs_new_protected:Npn \__color_select:n #1 @@ -24463,13 +25781,13 @@ \cs_new_protected:Npn \__color_select:w #1 ~ #2 \q_stop { \use:c { __color_select_ #1 :w } #2 \q_stop } \cs_new_protected:Npn \__color_select_cmyk:w #1 ~ #2 ~ #3 ~ #4 \q_stop - { \driver_color_cmyk:nnnn {#1} {#2} {#3} {#4} } + { \__color_backend_cmyk:nnnn {#1} {#2} {#3} {#4} } \cs_new_protected:Npn \__color_select_gray:w #1 \q_stop - { \driver_color_gray:n {#1} } + { \__color_backend_gray:n {#1} } \cs_new_protected:Npn \__color_select_rgb:w #1 ~ #2 ~ #3 \q_stop - { \driver_color_rgb:nnn {#1} {#2} {#3} } + { \__color_backend_rgb:nnn {#1} {#2} {#3} } \cs_new_protected:Npn \__color_select_spot:w #1 ~ #2 \q_stop - { \driver_color_spot:nn {#1} {#2} } + { \__color_backend_spot:nn {#1} {#2} } \tl_new:N \l__color_current_tl \tl_set:Nn \l__color_current_tl { gray~0 } %% File: l3coffins.dtx @@ -25332,7 +26650,7 @@ \cs_generate_variant:Nn \coffin_attach:NnnNnnnn { c , Nnnc , cnnc } \cs_new_protected:Npn \coffin_gattach:NnnNnnnn #1#2#3#4#5#6#7#8 { - \__coffin_gattach:NnnNnnnnN #1 {#2} {#3} #4 {#5} {#6} {#7} {#8} + \__coffin_attach:NnnNnnnnN #1 {#2} {#3} #4 {#5} {#6} {#7} {#8} \coffin_gset_eq:NN } \cs_generate_variant:Nn \coffin_gattach:NnnNnnnn { c , Nnnc , cnnc } @@ -25897,10 +27215,10 @@ \fi: } \cs_new_protected:Npn \box_clip:N #1 - { \hbox_set:Nn #1 { \driver_box_use_clip:N #1 } } + { \hbox_set:Nn #1 { \__box_backend_clip:N #1 } } \cs_generate_variant:Nn \box_clip:N { c } \cs_new_protected:Npn \box_gclip:N #1 - { \hbox_gset:Nn #1 { \driver_box_use_clip:N #1 } } + { \hbox_gset:Nn #1 { \__box_backend_clip:N #1 } } \cs_generate_variant:Nn \box_gclip:N { c } \cs_new_protected:Npn \box_set_trim:Nnnnn #1#2#3#4#5 { \__box_set_trim:NnnnnN #1 {#2} {#3} {#4} {#5} \box_set_eq:NN } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 8014aa50960..ee6b0cfdad3 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2019-05-28}% +\def\ExplFileDate{2019-07-01}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \def\tempa{LaTeX2e}% @@ -86,7 +86,7 @@ \iow_log:x { File:~#1~#2~v#3~#4 } } \tex_input:D - l3 + l3backend \sys_if_engine_xetex:TF { xdvipdfmx } { diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 41b84801c47..f08739aaacd 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2019-05-28}% +\def\ExplFileDate{2019-07-01}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% @@ -277,7 +277,8 @@ \ProvidesFile {#1} [ #2~v#3~#4 ] } \tl_const:Nn \c__expl_def_ext_tl { def } - \@onefilewithoptions { l3 \l__expl_driver_tl } [ ] [ ] \c__expl_def_ext_tl + \@onefilewithoptions { l3backend- \l__expl_driver_tl } [ ] [ ] + \c__expl_def_ext_tl } \tl_put_left:Nn \@pushfilename { diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index ed111045fbf..e1f1aad315d 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -1921,8 +1921,9 @@ \char_set_catcode_active:N \> \cs_new_protected:Npn \__codedoc_xmacro_code:n #1 { + \tl_clear:N \l__codedoc_tmpa_tl \tl_if_in:nnTF {#1} { < @ @ = } - { \__codedoc_xmacro_code:w #1 \q_stop } + { \__codedoc_xmacro_code:w #1 < @ @ = \q_recursion_tail > \q_recursion_stop } { \tl_set:Nn \l__codedoc_tmpa_tl {#1} \__codedoc_detect_internals:N \l__codedoc_tmpa_tl @@ -1930,21 +1931,21 @@ \tl_use:N \l__codedoc_tmpa_tl } } - \cs_new_protected:Npn \__codedoc_xmacro_code:w #1 < @ @ = #2 > #3 \q_stop + \cs_new_protected:Npn \__codedoc_xmacro_code:w #1 < @ @ = #2 > { - \tl_set:Nn \l__codedoc_tmpa_tl {#1} - \__codedoc_detect_internals:N \l__codedoc_tmpa_tl - \__codedoc_replace_at_at:N \l__codedoc_tmpa_tl - - \tl_gset:Nn \g__codedoc_module_name_tl {#2} - \tl_put_right:Nn \l__codedoc_tmpa_tl { < \text { \verbatim@font @ @ = #2 } > } - - \tl_set:Nn \l__codedoc_tmpb_tl {#3} + % Add code before <__codedoc=...> + \tl_set:Nn \l__codedoc_tmpb_tl {#1} \__codedoc_detect_internals:N \l__codedoc_tmpb_tl \__codedoc_replace_at_at:N \l__codedoc_tmpb_tl - \tl_put_right:No \l__codedoc_tmpa_tl { \l__codedoc_tmpb_tl } - - \tl_use:N \l__codedoc_tmpa_tl + \tl_put_right:NV \l__codedoc_tmpa_tl \l__codedoc_tmpb_tl + % Check for \q_recursion_tail + \quark_if_recursion_tail_stop_do:nn {#2} + { \tl_use:N \l__codedoc_tmpa_tl } + % Change module name and add <__codedoc=#2> to typeset output + \tl_gset:Nn \g__codedoc_module_name_tl {#2} + \tl_put_right:Nn \l__codedoc_tmpa_tl { < \text { \verbatim@font @ @ = #2 } > } + % Loop + \__codedoc_xmacro_code:w } \group_end: \iow_new:N \g__codedoc_func_iow diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def deleted file mode 100644 index 20789461412..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def +++ /dev/null @@ -1,635 +0,0 @@ -%% -%% This is file `l3dvipdfmx.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3drivers.dtx (with options: `package,dvipdfmx') -%% l3drivers-basics.dtx (with options: `package,dvipdfmx') -%% l3drivers-color.dtx (with options: `package,dvipdfmx') -%% l3drivers-box.dtx (with options: `package,dvipdfmx') -%% l3drivers-draw.dtx (with options: `package,dvipdfmx') -%% l3drivers-graphics.dtx (with options: `package,dvipdfmx') -%% l3drivers-pdf.dtx (with options: `package,dvipdfmx') -%% -%% 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 "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3drivers.dtx -%% File: l3drivers-basics.dtx -\ProvidesExplFile - {l3dvipdfmx.def}{2019-04-06}{} - {L3 Experimental driver: dvipdfmx} -\cs_new_eq:NN \__driver_literal:e \tex_special:D -\cs_new_protected:Npn \__driver_literal:n #1 - { \__driver_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__driver_literal:n { x } -\box_new:N \l__driver_internal_box -\cs_new_protected:Npn \__driver_literal_pdf:n #1 - { \__driver_literal:n { pdf:literal~ #1 } } -\cs_generate_variant:Nn \__driver_literal_pdf:n { x } -\cs_new_protected:Npn \__driver_scope_begin: - { \__driver_literal:n { x:gsave } } -\cs_new_protected:Npn \__driver_scope_end: - { \__driver_literal:n { x:grestore } } -%% File: l3drivers-color.dtx -\cs_new_protected:Npn \driver_color_pickup:N #1 { } -\AtBeginDocument - { - \@ifpackageloaded { color } - { - \cs_set_protected:Npn \driver_color_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 \__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 } } - } - { } - } -\cs_new_protected:Npn \driver_color_cmyk:nnnn #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:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \driver_color_rgb:nnn #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 { #1 } } -\cs_new_protected:Npn \__driver_color_select:n #1 - { - \__driver_literal:n { color~push~ #1 } - \group_insert_after:N \__driver_color_reset: - } -\cs_generate_variant:Nn \__driver_color_select:n { x } -\cs_new_protected:Npn \__driver_color_reset: - { \__driver_literal:n { color~pop } } -%% File: l3drivers-box.dtx -\cs_new_protected:Npn \driver_box_use_clip:N #1 - { - \__driver_scope_begin: - \__driver_literal_pdf:x - { - 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 } ~ - re~W~n - } - \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:x - { - x:rotate~ - \fp_compare:nNnTF {#2} = \c_zero_fp - { 0 } - { \fp_eval:n { round ( #2 , 5 ) } } - } - \box_use:N #1 - \__driver_scope_end: - } -\cs_new_protected:Npn \driver_box_use_scale:Nnn #1#2#3 - { - \__driver_scope_begin: - \__driver_literal:x - { - x:scale~ - \fp_eval:n { round ( #2 , 5 ) } ~ - \fp_eval:n { round ( #3 , 5 ) } - } - \hbox_overlap_right:n { \box_use:N #1 } - \__driver_scope_end: - } -%% File: l3drivers-draw.dtx -\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_pdf:n -\cs_generate_variant:Nn \__driver_draw_literal:n { x } -\cs_new_protected:Npn \driver_draw_begin: - { \driver_draw_scope_begin: } -\cs_new_protected:Npn \driver_draw_end: - { \driver_draw_scope_end: } -\cs_new_eq:NN \driver_draw_scope_begin: \__driver_scope_begin: -\cs_new_eq:NN \driver_draw_scope_end: \__driver_scope_end: -\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} ~ m } - } -\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} ~ l } - } -\cs_new_protected:Npn \driver_draw_curveto:nnnnnn #1#2#3#4#5#6 - { - \__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} ~ - \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~ - c - } - } -\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:Npn \driver_draw_stroke: - { \__driver_draw_literal:n { S } } -\cs_new_protected:Npn \driver_draw_closestroke: - { \__driver_draw_literal:n { s } } -\cs_new_protected:Npn \driver_draw_fill: - { - \__driver_draw_literal:x - { f \bool_if:NT \g__driver_draw_eor_bool * } - } -\cs_new_protected:Npn \driver_draw_fillstroke: - { - \__driver_draw_literal:x - { B \bool_if:NT \g__driver_draw_eor_bool * } - } -\cs_new_protected:Npn \driver_draw_clip: - { - \__driver_draw_literal:x - { W \bool_if:NT \g__driver_draw_eor_bool * } - } -\cs_new_protected:Npn \driver_draw_discardpath: - { \__driver_draw_literal:n { n } } -\cs_new_protected:Npn \driver_draw_dash_pattern:nn #1#2 - { - \__driver_draw_literal:x - { - [ - \exp_args:Nf \use:n - { \clist_map_function:nN {#1} \__driver_draw_dash:n } - ] ~ - \dim_to_decimal_in_bp:n {#2} ~ d - } - } -\cs_new:Npn \__driver_draw_dash: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} ~ w } - } -\cs_new_protected:Npn \driver_draw_miterlimit:n #1 - { \__driver_draw_literal:x { \fp_eval:n {#1} ~ M } } -\cs_new_protected:Npn \driver_draw_cap_butt: - { \__driver_draw_literal:n { 0 ~ J } } -\cs_new_protected:Npn \driver_draw_cap_round: - { \__driver_draw_literal:n { 1 ~ J } } -\cs_new_protected:Npn \driver_draw_cap_rectangle: - { \__driver_draw_literal:n { 2 ~ J } } -\cs_new_protected:Npn \driver_draw_join_miter: - { \__driver_draw_literal:n { 0 ~ j } } -\cs_new_protected:Npn \driver_draw_join_round: - { \__driver_draw_literal:n { 1 ~ j } } -\cs_new_protected:Npn \driver_draw_join_bevel: - { \__driver_draw_literal:n { 2 ~ j } } -\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4 - { - \__driver_color_fill_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } -\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4 - { - \__driver_color_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } -\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1 - { \__driver_color_fill_select:x { \fp_eval:n {#1} ~ g } } -\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1 - { \__driver_color_select:x { \fp_eval:n {#1} ~ G } } -\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3 - { - \__driver_color_fill_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg } - } -\cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3 - { - \__driver_color_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG } - } -\cs_new_eq:NN \__driver_color_fill_select:n \__driver_draw_literal:n -\cs_generate_variant:Nn \__driver_color_fill_select:n { x } -\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4 - { - \__driver_draw_cm_decompose:nnnnN {#1} {#2} {#3} {#4} - \__driver_draw_cm:nnnn - } -\cs_new_protected:Npn \__driver_draw_cm:nnnn #1#2#3#4 - { - \__driver_literal:x - { - x:rotate~ - \fp_compare:nNnTF {#1} = \c_zero_fp - { 0 } - { \fp_eval:n { round ( -#1 , 5 ) } } - } - \__driver_literal:x - { - x:scale~ - \fp_eval:n { round ( #2 , 5 ) } ~ - \fp_eval:n { round ( #3 , 5 ) } - } - \__driver_literal:x - { - x:rotate~ - \fp_compare:nNnTF {#4} = \c_zero_fp - { 0 } - { \fp_eval:n { round ( -#4 , 5 ) } } - } - } -\cs_new_protected:Npn \__driver_draw_cm_decompose:nnnnN #1#2#3#4#5 - { - \use:x - { - \__driver_draw_cm_decompose_auxi:nnnnN - { \fp_eval:n { (#1 + #4) / 2 } } - { \fp_eval:n { (#1 - #4) / 2 } } - { \fp_eval:n { (#3 + #2) / 2 } } - { \fp_eval:n { (#3 - #2) / 2 } } - } - #5 - } -\cs_new_protected:Npn \__driver_draw_cm_decompose_auxi:nnnnN #1#2#3#4#5 - { - \use:x - { - \__driver_draw_cm_decompose_auxii:nnnnN - { \fp_eval:n { 2 * sqrt ( #1 * #1 + #4 * #4 ) } } - { \fp_eval:n { 2 * sqrt ( #2 * #2 + #3 * #3 ) } } - { \fp_eval:n { atand ( #3 , #2 ) } } - { \fp_eval:n { atand ( #4 , #1 ) } } - } - #5 - } -\cs_new_protected:Npn \__driver_draw_cm_decompose_auxii:nnnnN #1#2#3#4#5 - { - \use:x - { - \__driver_draw_cm_decompose_auxiii:nnnnN - { \fp_eval:n { ( #4 - #3 ) / 2 } } - { \fp_eval:n { ( #1 + #2 ) / 2 } } - { \fp_eval:n { ( #1 - #2 ) / 2 } } - { \fp_eval:n { ( #4 + #3 ) / 2 } } - } - #5 - } -\cs_new_protected:Npn \__driver_draw_cm_decompose_auxiii:nnnnN #1#2#3#4#5 - { - \fp_compare:nNnTF { abs( #2 ) } > { abs ( #3 ) } - { #5 {#1} {#2} {#3} {#4} } - { #5 {#1} {#3} {#2} {#4} } - } -\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5 - { - \__driver_scope_begin: - \__driver_literal:x - { - pdf:btrans~matrix~ - \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ - \fp_eval:n {#4} ~ \fp_eval:n {#5} ~ - 0 ~ 0 - } - \hbox_overlap_right:n { \box_use:N #1 } - \__driver_literal:n { pdf:etrans } - \__driver_scope_end: - } -%% File: l3drivers-graphics.dtx -\AtBeginDocument - { \cs_new_eq:NN \driver_graphics_getbb_eps:n \graphics_read_bb:n } -\cs_new_protected:Npn \driver_graphics_getbb_jpg:n #1 - { - \int_zero:N \l_graphics_page_int - \tl_clear:N \l_graphics_pagebox_tl - \graphics_extract_bb:n {#1} - } -\cs_new_eq:NN \driver_graphics_getbb_png:n \driver_graphics_getbb_jpg:n -\cs_new_protected:Npn \driver_graphics_getbb_pdf:n #1 - { - \tl_clear:N \l_graphics_decodearray_tl - \bool_set_false:N \l_graphics_interpolate_bool - \graphics_extract_bb:n {#1} - } -\int_new:N \g__driver_graphics_int -\cs_new_protected:Npn \driver_graphics_include_eps:n #1 - { - \__driver_literal:x - { - PSfile = #1 \c_space_tl - llx = \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl - lly = \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl - urx = \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl - ury = \dim_to_decimal_in_bp:n \l_graphics_ury_dim - } - } -\cs_new_protected:Npn \driver_graphics_include_jpg:n #1 - { \__driver_graphics_include_auxi:nn {#1} { image } } -\cs_new_eq:NN \driver_graphics_include_png:n \driver_graphics_include_jpg:n -\cs_new_protected:Npn \driver_graphics_include_pdf:n #1 - { \__driver_graphics_include_auxi:nn {#1} { epdf } } -\cs_new_protected:Npn \__driver_graphics_include_auxi:nn #1#2 - { - \__driver_graphics_include_auxii:xnn - { - \tl_if_empty:NF \l_graphics_pagebox_tl - { : \l_graphics_pagebox_tl } - \int_compare:nNnT \l_graphics_page_int > 1 - { :P \int_use:N \l_graphics_page_int } - \tl_if_empty:NF \l_graphics_decodearray_tl - { :D \l_graphics_decodearray_tl } - \bool_if:NT \l_graphics_interpolate_bool - { :I } - } - {#1} {#2} - } -\cs_new_protected:Npn \__driver_graphics_include_auxii:nnn #1#2#3 - { - \int_if_exist:cTF { c__driver_graphics_ #2#1 _int } - { - \__driver_literal:x - { pdf:usexobj~@graphic \int_use:c { c__driver_graphics_ #2#1 _int } } - } - { \__driver_graphics_include_auxiii:nnn {#2} {#1} {#3} } - } -\cs_generate_variant:Nn \__driver_graphics_include_auxii:nnn { x } -\cs_new_protected:Npn \__driver_graphics_include_auxiii:nnn #1#2#3 - { - \int_gincr:N \g__driver_graphics_int - \int_const:cn { c__driver_graphics_ #1#2 _int } { \g__driver_graphics_int } - \__driver_literal:x - { - pdf:#3~ - @graphic \int_use:c { c__driver_graphics_ #1#2 _int } ~ - \int_compare:nNnT \l_graphics_page_int > 1 - { page ~ \int_use:N \l_graphics_page_int \c_space_tl } - \tl_if_empty:NF \l_graphics_pagebox_tl - { - pagebox ~ \l_graphics_pagebox_tl \c_space_tl - bbox ~ - \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl - \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl - \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl - \dim_to_decimal_in_bp:n \l_graphics_ury_dim \c_space_tl - } - (#1) - \bool_lazy_or:nnT - { \l_graphics_interpolate_bool } - { ! \tl_if_empty_p:N \l_graphics_decodearray_tl } - { - << - \tl_if_empty:NF \l_graphics_decodearray_tl - { /Decode~[ \l_graphics_decodearray_tl ] } - \bool_if:NT \l_graphics_interpolate_bool - { /Interpolate~true> } - >> - } - } - } -%% File: l3drivers-pdf.dtx -\cs_new_protected:Npx \__driver_pdf:n #1 - { \__driver_literal:n { pdf: #1 } } -\cs_generate_variant:Nn \__driver_pdf:n { x } -\cs_new_protected:Npn \driver_pdf_catalog_gput:nn #1#2 - { \__driver_pdf:n { put ~ @catalog << /#1 ~ #2 >> } } -\cs_new_protected:Npn \driver_pdf_info_gput:nn #1#2 - { \__driver_pdf:n { docinfo << /#1 ~ #2 >> } } -\int_new:N \g__driver_pdf_object_int -\prop_new:N \g__driver_pdf_object_prop -\cs_new_protected:Npn \driver_pdf_object_new:nn #1#2 - { - \int_gincr:N \g__driver_pdf_object_int - \int_const:cn - { g__driver_pdf_object_ \tl_to_str:n {#1} _int } - { \g__driver_pdf_object_int } - \prop_gput:Nnn \g__driver_pdf_object_prop {#1} {#2} - } -\cs_new:Npn \driver_pdf_object_ref:n #1 - { @driver.obj \int_use:c { g__driver_pdf_object_ \tl_to_str:n {#1} _int } } -\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2 - { - \exp_args:Nx \__driver_pdf_object_write:nnn - { \prop_item:Nn \g__driver_pdf_object_prop {#1} } {#1} {#2} - } -\cs_new_protected:Npn \__driver_pdf_object_write:nnn #1#2#3 - { \use:c { __driver_pdf_object_write_ #1 :nn } {#2} {#3} } -\cs_new_protected:Npn \__driver_pdf_object_write_array:nn #1#2 - { - \__driver_pdf:x - { - obj ~ \driver_pdf_object_ref:n {#1} ~ - [ ~ \exp_not:n {#2} ~ ] - } - } -\cs_new_protected:Npn \__driver_pdf_object_write_dict:nn #1#2 - { - \__driver_pdf:x - { - obj ~ \driver_pdf_object_ref:n {#1} ~ - << ~ \exp_not:n {#2} ~ >> - } - } -\cs_new_protected:Npn \__driver_pdf_object_write_fstream:nn #1#2 - { \__driver_pdf_object_write_stream:nnnn { f } {#1} #2 } -\cs_new_protected:Npn \__driver_pdf_object_write_stream:nn #1#2 - { \__driver_pdf_object_write_stream:nnnn { } {#1} #2 } -\cs_new_protected:Npn \__driver_pdf_object_write_stream:nnnn #1#2#3#4 - { - \__driver_pdf:x - { - #1 stream ~ \driver_pdf_object_ref:n {#2} ~ - ( \exp_not:n {#4} ) ~ << \exp_not:n {#3} >> - - } - } -\bool_new:N \g__driver_landscape_bool -\AtBeginDocument - { - \cs_if_exist:NT \landscape - { - \tl_put_right:Nn \landscape - { \bool_gset_true:N \g__driver_landscape_bool } - \tl_put_left:Nn \endlandscape - { \bool_gset_false:N \g__driver_landscape_bool } - } - } -\int_new:N \g__driver_pdf_annotation_int -\cs_new_protected:Npn \driver_pdf_annotation:nnnn #1#2#3#4 - { - \bool_if:NTF \g__driver_landscape_bool - { - \box_move_up:nn {#2} - { - \vbox:n - { - \__driver_pdf_annotation:nnnn - { #2 + #3 } {#1} { 0pt } {#4} - } - } - } - { \__driver_pdf_annotation:nnnn {#1} {#2} {#3} {#4} } - } -\cs_new_protected:Npn \__driver_pdf_annotation:nnnn #1#2#3#4 - { - \int_gincr:N \g__driver_pdf_object_int - \int_gset_eq:NN \g__driver_pdf_annotation_int \g__driver_pdf_object_int - \__driver_pdf:x - { - ann ~ @driver.obj \int_use:N \g__driver_pdf_object_int \c_space_tl - width ~ \dim_eval:n {#1} ~ - height ~ \dim_eval:n {#2} ~ - depth ~ \dim_eval:n {#3} ~ - << #4 >> - } - } -\cs_new_protected:Npn \driver_pdf_link_begin_goto:nnw #1#2 - { \__driver_pdf_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } } -\cs_new_protected:Npn \driver_pdf_link_begin_user:nnw #1#2 - { \__driver_pdf_link_begin:n {#1#2} } -\cs_new_protected:Npn \__driver_pdf_link_begin:n #1 - { - \__driver_pdf:n - { - bann - << - /Type /Annot - #1 - >> - } - } -\cs_new_protected:Npn \driver_pdf_link_end: - { \__driver_pdf:n { eann } } -\cs_new:Npn \driver_pdf_link_last: { } -\cs_new_protected:Npn \driver_pdf_link_margin:n #1 - { \__driver_literal:x { dvipdfmx:config~g~ \dim_eval:n {#1} } } -\cs_new_protected:Npn \driver_pdf_destination:nn #1#2 - { - \__driver_pdf:x - { - dest ~ ( \exp_not:n {#1} ) - [ - @thispage - \str_case:nnF {#2} - { - { xyz } { /XYZ ~ @xpos ~ @ypos ~ null } - { fit } { /Fit } - { fitb } { /FitB } - { fitbh } { /FitBH } - { fitbv } { /FitBV ~ @xpos } - { fith } { /FitH ~ @ypos } - { fitv } { /FitV ~ @xpos } - } - { /XYZ ~ @xpos ~ @ypos ~ \fp_eval:n { (#2) / 100 } } - ] - } - } -\cs_new_protected:Npn \driver_pdf_destination_rectangle:nn #1#2 - { - \group_begin: - \hbox_set:Nn \l__driver_internal_box {#2} - \box_move_down:nn { \box_dp:N \l__driver_internal_box } - { - \hbox:n - { - \__driver_pdf:n { obj ~ @driver_#1_llx ~ @xpos } - \__driver_pdf:n { obj ~ @driver_#1_lly ~ @ypos } - } - } - \box_use:N \l__driver_internal_box - \box_move_up:nn { \box_ht:N \l__driver_internal_box } - { - \hbox:n - { - \__driver_pdf:n - { - dest ~ (#1) - [ - @thispage - /FitR ~ - @driver_#1_llx ~ @driver_#1_lly ~ - @xpos ~ @ypos - ] - } - } - } - \group_end: - } -\cs_new_protected:Npn \driver_pdf_compresslevel:n #1 - { \__driver_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } } -\cs_new_protected:Npn \driver_pdf_compress_objects:n #1 - { - \str_if_eq:nnF {#1} { true } - { \__driver_literal:n { dvipdfmx:config~C~0x40 } } - } -\cs_new_protected:Npn \driver_pdf_version_major:n #1 - { - \cs_gset:Npx \driver_pdf_version_major: { \int_eval:n {#1} } - \__driver_literal:x { pdf:majorversion \driver_pdf_version_major: } - } -\cs_new_protected:Npn \driver_pdf_version_minor:n #1 - { - \cs_gset:Npx \driver_pdf_version_minor: { \int_eval:n {#1} } - \__driver_literal:x { pdf:minorversion \driver_pdf_version_minor: } - } -\cs_new:Npn \driver_pdf_version_major: { 1 } -\cs_new:Npn \driver_pdf_version_minor: { 5 } -%% -%% -%% End of file `l3dvipdfmx.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def deleted file mode 100644 index f51166f9231..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def +++ /dev/null @@ -1,1176 +0,0 @@ -%% -%% This is file `l3dvips.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3drivers.dtx (with options: `package,dvips') -%% l3drivers-basics.dtx (with options: `package,dvips') -%% l3drivers-color.dtx (with options: `package,dvips') -%% l3drivers-box.dtx (with options: `package,dvips') -%% l3drivers-draw.dtx (with options: `package,dvips') -%% l3drivers-graphics.dtx (with options: `package,dvips') -%% l3drivers-pdf.dtx (with options: `package,dvips') -%% -%% 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 "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3drivers.dtx -%% File: l3drivers-basics.dtx -\ProvidesExplFile - {l3dvips.def}{2019-04-06}{} - {L3 Experimental driver: dvips} -\cs_new_eq:NN \__driver_literal:e \tex_special:D -\cs_new_protected:Npn \__driver_literal:n #1 - { \__driver_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__driver_literal:n { x } -\box_new:N \l__driver_internal_box -\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_postscript:n #1 - { \__driver_literal:n { ps: SDict ~ begin ~ #1 ~ end } } -\cs_generate_variant:Nn \__driver_postscript:n { x } -\cs_new_protected:Npx \__driver_postscript_header:n #1 - { - \cs_if_exist:NTF \AtBeginDvi - { \exp_not:N \AtBeginDvi } - { \use:n } - { \__driver_literal:n { ! #1 } } - } -\cs_new_protected:Npn \__driver_align_currentpoint_begin: - { - \__driver_literal:n { ps::[begin] } - \__driver_literal_postscript:n { currentpoint } - \__driver_literal_postscript:n { currentpoint~translate } - } -\cs_new_protected:Npn \__driver_align_currentpoint_end: - { - \__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 } } -%% File: l3drivers-color.dtx -\cs_new_protected:Npn \driver_color_pickup:N #1 { } -\AtBeginDocument - { - \@ifpackageloaded { color } - { - \cs_set_protected:Npn \driver_color_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 \__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 } } - } - { } - } -\cs_new_protected:Npn \driver_color_cmyk:nnnn #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:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \driver_color_rgb:nnn #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 { #1 } } -\cs_new_protected:Npn \__driver_color_select:n #1 - { - \__driver_literal:n { color~push~ #1 } - \__driver_postscript:n { /driver.fc~{ }~def } - \group_insert_after:N \__driver_color_reset: - } -\cs_generate_variant:Nn \__driver_color_select:n { x } -\cs_new_protected:Npn \__driver_color_reset: - { \__driver_literal:n { color~pop } } -%% File: l3drivers-box.dtx -\cs_new_protected:Npn \driver_box_use_clip:N #1 - { - \__driver_scope_begin: - \__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 - { - 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_align_currentpoint_begin: - \__driver_literal_postscript:x - { - \fp_compare:nNnTF {#2} = \c_zero_fp - { 0 } - { \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_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: - } -%% File: l3drivers-draw.dtx -\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_literal:n { ps::[begin] } - \__driver_draw_literal:n { @beginspecial } - \__driver_darw_literal:n { SDict ~ begin ~ /driver.fc ~ { } ~ def ~ end } - } -\cs_new_protected:Npn \driver_draw_end: - { - \__driver_draw_literal:n { @endspecial } - \__driver_literal:n { ps::[end] } - } -\cs_new_protected:Npn \driver_draw_scope_begin: - { \__driver_draw_literal:n { save } } -\cs_new_protected:Npn \driver_draw_scope_end: - { \__driver_draw_literal:n { restore } } -\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 - } - } -\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 - } - } -\cs_new_protected:Npn \driver_draw_rectangle:nnnn #1#2#3#4 - { - \__driver_draw_literal:x - { - \dim_to_decimal_in_bp:n {#4} ~ \dim_to_decimal_in_bp:n {#3} ~ - \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ - moveto~dup~0~rlineto~exch~0~exch~rlineto~neg~0~rlineto~closepath - } - } -\cs_new_protected:Npn \driver_draw_curveto:nnnnnn #1#2#3#4#5#6 - { - \__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} ~ - \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~ - curveto - } - } -\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 { closepath } } -\cs_new_protected:Npn \driver_draw_stroke: - { - \__driver_draw_literal:n { stroke } - \bool_if:NT \g__driver_draw_clip_bool - { - \__driver_draw_literal:x - { - \bool_if:NT \g__driver_draw_eor_bool { eo } - clip - } - } - \__driver_draw_literal:n { newpath } - \bool_gset_false:N \g__driver_draw_clip_bool - } -\cs_new_protected:Npn \driver_draw_closestroke: - { - \driver_draw_closepath: - \driver_draw_stroke: - } -\cs_new_protected:Npn \driver_draw_fill: - { - \__driver_draw_literal:n { gsave } - \__driver_draw_literal:n { driver.fc } - \__driver_draw_literal:x - { - \bool_if:NT \g__driver_draw_eor_bool { eo } - fill - } - \__driver_draw_literal:n { grestore } - \bool_if:NT \g__driver_draw_clip_bool - { - \__driver_draw_literal:x - { - \bool_if:NT \g__driver_draw_eor_bool { eo } - clip - } - } - \__driver_draw_literal:n { newpath } - \bool_gset_false:N \g__driver_draw_clip_bool - } -\cs_new_protected:Npn \driver_draw_fillstroke: - { - \__driver_draw_literal:n { gsave } - \__driver_draw_literal:n { driver.fc } - \__driver_draw_literal:x - { - \bool_if:NT \g__driver_draw_eor_bool { eo } - fill - } - \__driver_draw_literal:n { grestore } - \__driver_draw_literal:n { stroke } - \bool_if:NT \g__driver_draw_clip_bool - { - \__driver_draw_literal:x - { - \bool_if:NT \g__driver_draw_eor_bool { eo } - clip - } - } - \__driver_draw_literal:n { newpath } - \bool_gset_false:N \g__driver_draw_clip_bool - } -\cs_new_protected:Npn \driver_draw_clip: - { \bool_gset_true:N \g__driver_draw_clip_bool } -\bool_new:N \g__driver_draw_clip_bool -\cs_new_protected:Npn \driver_draw_discardpath: - { - \bool_if:NT \g__driver_draw_clip_bool - { - \__driver_draw_literal:x - { - \bool_if:NT \g__driver_draw_eor_bool { eo } - clip - } - } - \__driver_draw_literal:n { newpath } - \bool_gset_false:N \g__driver_draw_clip_bool - } -\cs_new_protected:Npn \driver_draw_dash_pattern:nn #1#2 - { - \__driver_draw_literal:x - { - [ - \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} } -\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: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: - { \__driver_draw_literal:n { 1 ~ setlinecap } } -\cs_new_protected:Npn \driver_draw_cap_rectangle: - { \__driver_draw_literal:n { 2 ~ setlinecap } } -\cs_new_protected:Npn \driver_draw_join_miter: - { \__driver_draw_literal:n { 0 ~ setlinejoin } } -\cs_new_protected:Npn \driver_draw_join_round: - { \__driver_draw_literal:n { 1 ~ setlinejoin } } -\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_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_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_color_fill:x { \fp_eval:n {#1} ~ setgray } } -\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #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_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_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_postscript:n { SDict ~ begin ~ /driver.fc ~ { #1 } ~ def ~ end } } -\cs_generate_variant:Nn \__driver_draw_color_fill:n { x } -\cs_new_protected:Npn \__driver_draw_color_stroke:n #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 - { - [ - \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_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_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_draw_literal:n { restore } - \__driver_draw_literal:n { [end] } - \__driver_draw_literal:n { [begin] } - \__driver_draw_literal:n { @beginspecial } - } -%% File: l3drivers-graphics.dtx -\AtBeginDocument - { \cs_new_eq:NN \driver_graphics_getbb_eps:n \graphics_read_bb:n } -\cs_new_protected:Npn \driver_graphics_include_eps:n #1 - { - \__driver_literal:x - { - PSfile = #1 \c_space_tl - llx = \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl - lly = \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl - urx = \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl - ury = \dim_to_decimal_in_bp:n \l_graphics_ury_dim - } - } -%% File: l3drivers-pdf.dtx -\cs_new_protected:Npn \__driver_pdfmark:n #1 - { \__driver_postscript:n { mark #1 ~ pdfmark } } -\cs_generate_variant:Nn \__driver_pdfmark:n { x } -\cs_new_protected:Npn \driver_pdf_catalog_gput:nn #1#2 - { \__driver_pdfmark:n { { Catalog } << /#1 ~ #2 >> /PUT } } -\cs_new_protected:Npn \driver_pdf_info_gput:nn #1#2 - { \__driver_pdfmark:n { /#1 ~ #2 /DOCINFO } } -\int_new:N \g__driver_pdf_object_int -\prop_new:N \g__driver_pdf_object_prop -\cs_new_protected:Npn \driver_pdf_object_new:nn #1#2 - { - \int_gincr:N \g__driver_pdf_object_int - \int_const:cn - { c__driver_pdf_object_ \tl_to_str:n {#1} _int } - { \g__driver_pdf_object_int } - \prop_gput:Nnn \g__driver_pdf_object_prop {#1} {#2} - } -\cs_new:Npn \driver_pdf_object_ref:n #1 - { { driver.obj \int_use:c { c__driver_pdf_object_ \tl_to_str:n {#1} _int } } } -\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2 - { - \__driver_pdfmark:x - { - /_objdef ~ \driver_pdf_object_ref:n {#1} - /type - \str_case_e:nn - { \prop_item:Nn \g__driver_pdf_object_prop {#1} } - { - { array } { /array } - { dict } { /dict } - { fstream } { /stream } - { stream } { /stream } - } - /OBJ - } - \use:c - { __driver_pdf_object_write_ \prop_item:Nn \g__driver_pdf_object_prop {#1} :nn } - {#1} {#2} - } -\cs_new_protected:Npn \__driver_pdf_object_write_array:nn #1#2 - { - \__driver_pdfmark:x - { - \driver_pdf_object_ref:n {#1} - [ ~ \exp_not:n {#2} ~ ] ~ /PUTINTERVAL - } - } -\cs_new_protected:Npn \__driver_pdf_object_write_dict:nn #1#2 - { - \__driver_pdfmark:x - { - \driver_pdf_object_ref:n {#1} - << \exp_not:n {#2} >> /PUT - } - } -\cs_new_protected:Npn \__driver_pdf_object_write_stream:nn #1#2 - { - \exp_args:Nx - \__driver_pdf_object_write_stream:nnn - { \driver_pdf_object_ref:n {#1} } - #2 - } -\cs_new_protected:Npn \__driver_pdf_object_write_stream:nnn #1#2#3 - { - \__driver_postscript:n - { - [nobreak] - mark ~ #1 ~ ( #3 ) /PUT ~ pdfmark ~ - mark ~ #1 ~ << #2 >> /PUT ~ pdfmark - } - } -\__driver_postscript_header:n - { - true ~ setglobal ~ - /driver.globaldict ~ 4 ~ dict ~ def ~ - false ~ setglobal - } -\__driver_postscript_header:n - { - /driver.cvs { 65534 ~ string ~ cvs } def - /driver.dvi.pt { 72.27 ~ mul ~ Resolution ~ div } def - /driver.pt.dvi { 72.27 ~ div ~ Resolution ~ mul } def - /driver.rect.ht { dup ~ 1 ~ get ~ neg ~ exch ~ 3 ~ get ~ add } def - } -\__driver_postscript_header:n - { - /driver.linkmargin { 1 ~ driver.pt.dvi } def - /driver.linkdp.pad { 0 } def - /driver.linkht.pad { 0 } def - } -\__driver_postscript_header:n - { - /driver.rect - { /Rect [ driver.llx ~ driver.lly ~ driver.urx ~ driver.ury ] } def - /driver.save.ll - { - currentpoint - /driver.lly ~ exch ~ def - /driver.llx ~ exch ~ def - } - def - /driver.save.ur - { - currentpoint - /driver.ury ~ exch ~ def - /driver.urx ~ exch ~ def - } - def - /driver.save.linkll - { - currentpoint ~ - driver.linkmargin ~ add ~ - driver.linkdp.pad ~ add - /driver.lly ~ exch ~ def ~ - driver.linkmargin ~ sub - /driver.llx ~ exch ~ def - } - def - /driver.save.linkur - { - currentpoint ~ - driver.linkmargin ~ sub ~ - driver.linkht.pad ~ sub - /driver.ury ~ exch ~ def ~ - driver.linkmargin ~ add - /driver.urx ~ exch ~ def - } - def - } -\__driver_postscript_header:n - { - /driver.dest.anchor - { - currentpoint ~ exch ~ - driver.dvi.pt ~ 72 ~ add ~ - /driver.dest.x ~ exch ~ def ~ - driver.dvi.pt ~ - vsize ~ 72 ~ sub ~ exch ~ sub ~ - /driver.dest.y ~ exch ~ def - } - def - /driver.dest.point - { driver.dest.x ~ driver.dest.y } def - /driver.dest2device - { - /driver.dest.y ~ exch ~ def - /driver.dest.x ~ exch ~ def ~ - matrix ~ currentmatrix ~ - matrix ~ defaultmatrix ~ - matrix ~ invertmatrix ~ - matrix ~ concatmatrix ~ - cvx ~ exec - /driver.dev.y ~ exch ~ def - /driver.dev.x ~ exch ~ def - /driver.tmpd ~ exch ~ def - /driver.tmpc ~ exch ~ def - /driver.tmpb ~ exch ~ def - /driver.tmpa ~ exch ~ def ~ - driver.dest.x ~ driver.tmpa ~ mul ~ - driver.dest.y ~ driver.tmpc ~ mul ~ add ~ - driver.dev.x ~ add ~ - driver.dest.x ~ driver.tmpb ~ mul ~ - driver.dest.y ~ driver.tmpd ~ mul ~ add ~ - driver.dev.y ~ add - } - def - } -\__driver_postscript_header:n - { - /driver.bordertracking ~ false ~ def - /driver.bordertracking.begin - { - SDict ~ /driver.bordertracking ~ true ~ put ~ - SDict ~ /driver.leftboundary ~ undef ~ - SDict ~ /driver.rightboundary ~ undef ~ - /a ~ where - { - /a - { - currentpoint ~ pop ~ - SDict /driver.rightboundary ~ known ~ dup - { - SDict /driver.rightboundary ~ get ~ 2 ~ index ~ lt - { not } - if - } - if - { pop } - { SDict ~ exch /driver.rightboundary ~ exch ~ put } - ifelse ~ - moveto ~ - currentpoint ~ pop ~ - SDict /driver.leftboundary ~ known ~ dup - { - SDict /driver.leftboundary ~ get ~ 2 ~ index ~ gt - { not } - if - } - if - { pop } - { SDict ~ exch /driver.leftboundary ~ exch ~ put } - ifelse - } - put - } - if - } - def - /driver.bordertracking.end - { - /a ~ where { /a { moveto } put } if - /x ~ where { /x { 0 ~ exch ~ rmoveto } put } if ~ - SDict /driver.leftboundary ~ known - { driver.outerbox ~ 0 ~ driver.leftboundary ~ put } - if ~ - SDict /driver.rightboundary ~ known - { driver.outerbox ~ 2 ~ driver.rightboundary ~ put } - if ~ - SDict /driver.bordertracking ~ false ~ put - } - def - /driver.bordertracking.endpage - { - driver.bordertracking - { - driver.bordertracking.end ~ - true ~ setglobal ~ - driver.globaldict - /driver.brokenlink.rect [ driver.outerbox ~ aload ~ pop ] put ~ - driver.globaldict - /driver.brokenlink.skip ~ driver.baselineskip ~ put ~ - driver.globaldict - /driver.brokenlink.dict ~ - driver.link.dict ~ driver.cvs ~ put ~ - false ~ setglobal ~ - mark ~ driver.link.dict ~ cvx ~ exec ~ /Rect - [ - driver.llx ~ - driver.lly ~ - driver.outerbox ~ 2 ~ get ~ driver.linkmargin ~ add ~ - currentpoint ~ exch ~ pop ~ - driver.outerbox ~ driver.rect.ht ~ sub ~ driver.linkmargin ~ sub - ] - /ANN ~ driver.pdfmark - } - if - } - def - /driver.bordertracking.continue - { - /driver.link.dict ~ driver.globaldict - /driver.brokenlink.dict ~ get ~ def - /driver.outerbox ~ driver.globaldict - /driver.brokenlink.rect ~ get ~ def - /driver.baselineskip ~ driver.globaldict - /driver.brokenlink.skip ~ get ~ def ~ - driver.globaldict ~ dup ~ dup - /driver.brokenlink.dict ~ undef - /driver.brokenlink.skip ~ undef - /driver.brokenlink.rect ~ undef ~ - currentpoint - /driver.originy ~ exch ~ def - /driver.originx ~ exch ~ def - /a ~ where - { - /a - { - moveto ~ - SDict ~ - begin ~ - currentpoint ~ driver.originy ~ ne ~ exch ~ - driver.originx ~ ne ~ or - { - driver.save.linkll - /driver.lly ~ - driver.lly ~ driver.outerbox ~ 1 ~ get ~ sub ~ def ~ - driver.bordertracking.begin - } - if ~ - end - } - put - } - if - /x ~ where - { - /x - { - 0 ~ exch ~ rmoveto ~ - SDict~ - begin ~ - currentpoint ~ - driver.originy ~ ne ~ exch ~ driver.originx ~ ne ~ or - { - driver.save.linkll - /driver.lly ~ - driver.lly ~ driver.outerbox ~ 1 ~ get ~ sub ~ def ~ - driver.bordertracking.begin - } - if ~ - end - } - put - } - if - } - def - } -\__driver_postscript_header:n - { - /driver.breaklink - { - pop ~ - counttomark ~ 2 ~ mod ~ 0 ~ eq - { - counttomark /driver.count ~ exch ~ def - { - driver.count ~ 0 ~ eq { exit } if ~ - counttomark ~ 2 ~ roll ~ - 1 ~ index ~ /Rect ~ eq - { - dup ~ 4 ~ array ~ copy ~ - dup ~ dup ~ - 1 ~ get ~ - driver.outerbox ~ driver.rect.ht ~ - driver.linkmargin ~ 2 ~ mul ~ add ~ sub ~ - 3 ~ exch ~ put ~ - dup ~ - driver.outerbox ~ 2 ~ get ~ - driver.linkmargin ~ add ~ - 2 ~ exch ~ put ~ - dup ~ dup ~ - 3 ~ get ~ - driver.outerbox ~ driver.rect.ht ~ - driver.linkmargin ~ 2 ~ mul ~ add ~ add ~ - 1 ~ exch ~ put - /driver.currentrect ~ exch ~ def ~ - driver.breaklink.write - { - driver.currentrect ~ - dup ~ - driver.outerbox ~ 0 ~ get ~ - driver.linkmargin ~ sub ~ - 0 ~ exch ~ put ~ - dup ~ - driver.outerbox ~ 2 ~ get ~ - driver.linkmargin ~ add ~ - 2 ~ exch ~ put ~ - dup ~ dup ~ - 1 ~ get ~ - driver.baselineskip ~ add ~ - 1 ~ exch ~ put ~ - dup ~ dup ~ - 3 ~ get ~ - driver.baselineskip ~ add ~ - 3 ~ exch ~ put ~ - /driver.currentrect ~ exch ~ def ~ - driver.breaklink.write - } - 1 ~ index ~ 3 ~ get ~ - driver.linkmargin ~ 2 ~ mul ~ add ~ - driver.outerbox ~ driver.rect.ht ~ add ~ - 2 ~ index ~ 1 ~ get ~ sub ~ - driver.baselineskip ~ div ~ round ~ cvi ~ 1 ~ sub ~ - exch ~ - repeat ~ - driver.currentrect ~ - dup ~ - driver.outerbox ~ 0 ~ get ~ - driver.linkmargin ~ sub ~ - 0 ~ exch ~ put ~ - dup ~ dup ~ - 1 ~ get ~ - driver.baselineskip ~ add ~ - 1 ~ exch ~ put ~ - dup ~ dup ~ - 3 ~ get ~ - driver.baselineskip ~ add ~ - 3 ~ exch ~ put ~ - dup ~ 2 ~ index ~ 2 ~ get ~ 2 ~ exch ~ put - /driver.currentrect ~ exch ~ def ~ - driver.breaklink.write ~ - SDict /driver.pdfmark.good ~ false ~ put ~ - exit - } - { driver.count ~ 2 ~ sub /driver.count ~ exch ~ def } - ifelse - } - loop - } - if - /ANN - } - def - /driver.breaklink.write - { - counttomark ~ 1 ~ sub ~ - index /_objdef ~ eq - { - counttomark ~ -2 ~ roll ~ - dup ~ wcheck ~ - { - readonly ~ - counttomark ~ 2 ~ roll - } - { pop ~ pop } - ifelse - } - if ~ - counttomark ~ 1 ~ add ~ copy ~ - pop ~ driver.currentrect - /ANN ~ pdfmark - } - def - } -\__driver_postscript_header:n - { - /driver.pdfmark - { - SDict /driver.pdfmark.good ~ true ~ put ~ - dup /ANN ~ eq - { - driver.pdfmark.store ~ - driver.pdfmark.dict ~ - begin ~ - Subtype /Link ~ eq ~ - currentdict /Rect ~ known ~ and ~ - SDict /driver.outerbox ~ known ~ and ~ - SDict /driver.baselineskip ~ known ~ and ~ - { - Rect ~ 3 ~ get ~ - driver.linkmargin ~ 2 ~ mul ~ add ~ - driver.outerbox ~ driver.rect.ht ~ add ~ - Rect ~ 1 ~ get ~ sub ~ - driver.baselineskip ~ div ~ round ~ cvi ~ 0 ~ gt - { driver.breaklink } - if - } - if ~ - end ~ - SDict /driver.outerbox ~ undef ~ - SDict /driver.baselineskip ~ undef ~ - currentdict /driver.pdfmark.dict ~ undef ~ - } - if ~ - driver.pdfmark.good - { pdfmark } - { cleartomark } - ifelse - } - def - /driver.pdfmark.store - { - /driver.pdfmark.dict ~ 65534 ~ dict ~ def ~ - counttomark ~ 1 ~ add ~ copy ~ - pop - { - dup ~ mark ~ eq - { - pop ~ - exit - } - { - driver.pdfmark.dict ~ - begin ~ def ~ end - } - ifelse - } - loop - } - def - } -\box_new:N \l__driver_pdf_content_box -\box_new:N \l__driver_pdf_model_box -\int_new:N \g__driver_pdf_annotation_int -\cs_new_protected:Npn \driver_pdf_annotation:nnnn #1#2#3#4 - { - \__driver_pdf_annotation:nnnn {#1} {#2} {#3} {#4} - \int_gincr:N \g__driver_pdf_object_int - \int_gset_eq:NN \g__driver_pdf_annotation_int \g__driver_pdf_object_int - \__driver_pdfmark:x - { - - /_objdef { driver.obj \int_use:N \g__driver_pdf_object_int } - driver.rect ~ - #4 ~ - /ANN - } - } -\cs_new_protected:Npn \__driver_pdf_annotation:nnnn #1#2#3#4 - { - \box_move_down:nn {#3} - { \hbox:n { \__driver_postscript:n { driver.save.ll } } } - \hbox:n {#4} - \box_move_up:nn {#2} - { - \hbox:n - { - \tex_kern:D \dim_eval:n {#1} \scan_stop: - \__driver_postscript:n { driver.save.ur } - } - } - \int_gincr:N \g__driver_pdf_object_int - \int_gset_eq:NN \g__driver_pdf_annotation_int \g__driver_pdf_object_int - \__driver_pdfmark:x - { - /_objdef { driver.obj \int_use:N \g__driver_pdf_object_int } - driver.rect - /ANN - } - } -\cs_new:Npn \driver_pdf_annotation_last: - { { driver.obj \int_use:N \g__driver_pdf_annotation_int } } -\int_new:N \g__driver_pdf_link_int -\tl_new:N \g__driver_pdf_link_dict_tl -\int_new:N \g__driver_pdf_link_sf_int -\bool_new:N \g__driver_pdf_link_math_bool -\bool_new:N \g__driver_pdf_link_bool -\tl_new:N \l__driver_breaklink_pdfmark_tl -\tl_set:Nn \l__driver_breaklink_pdfmark_tl { pdfmark } -\cs_new_protected:Npn \__driver_breaklink_postscript:n #1 { } -\cs_new_eq:NN \__driver_breaklink_usebox:N \box_use:N -\cs_new_protected:Npn \driver_pdf_link_begin_goto:nnw #1#2 - { \__driver_pdf_link_begin:nw { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } } -\cs_new_protected:Npn \driver_pdf_link_begin_user:nnw #1#2 - { \__driver_pdf_link_begin:nw {#1#2} } -\cs_new_protected:Npn \__driver_pdf_link_begin:nw #1 - { - \bool_if:NF \g__driver_pdf_link_bool - { \__driver_pdf_link_begin_aux:nw {#1} } - } -\cs_new_protected:Npn \__driver_pdf_link_begin_aux:nw #1 - { - \bool_gset_true:N \g__driver_pdf_link_bool - \__driver_postscript:n - { /driver.link.dict ( #1 ) def } - \tl_gset:Nn \g__driver_pdf_link_dict_tl {#1} - \__driver_pdf_link_sf_save: - \mode_if_math:TF - { \bool_gset_true:N \g__driver_pdf_link_math_bool } - { \bool_gset_false:N \g__driver_pdf_link_math_bool } - \hbox_set:Nw \l__driver_pdf_content_box - \__driver_pdf_link_sf_restore: - \bool_if:NT \g__driver_pdf_link_math_bool - { \c_math_toggle_token } - } -\cs_new_protected:Npn \driver_pdf_link_end: - { - \bool_if:NT \g__driver_pdf_link_bool - { \__driver_pdf_link_end: } - } -\cs_new_protected:Npn \__driver_pdf_link_end: - { - \bool_if:NT \g__driver_pdf_link_math_bool - { \c_math_toggle_token } - \__driver_pdf_link_sf_save: - \hbox_set_end: - \__driver_pdf_link_minima: - \hbox_set:Nn \l__driver_pdf_model_box { Gg } - \exp_args:Nx \__driver_driver_link_outerbox:n - { - \int_if_odd:nTF { \value { page } } - { \oddsidemargin } - { \evensidemargin } - } - \box_move_down:nn { \box_dp:N \l__driver_pdf_content_box } - { \hbox:n { \__driver_postscript:n { driver.save.linkll } } } - \__driver_breaklink_postscript:n { driver.bordertracking.begin } - \__driver_breaklink_usebox:N \l__driver_pdf_content_box - \__driver_breaklink_postscript:n { driver.bordertracking.end } - \box_move_up:nn { \box_ht:N \l__driver_pdf_content_box } - { - \hbox:n - { \__driver_postscript:n { driver.save.linkur } } - } - \int_gincr:N \g__driver_pdf_object_int - \int_gset_eq:NN \g__driver_pdf_link_int \g__driver_pdf_object_int - \__driver_postscript:x - { - mark - /_objdef { driver.obj \int_use:N \g__driver_pdf_link_int } - \g__driver_pdf_link_dict_tl \c_space_tl - driver.rect - /ANN ~ \l__driver_breaklink_pdfmark_tl - } - \__driver_pdf_link_sf_restore: - \bool_gset_false:N \g__driver_pdf_link_bool - } -\cs_new_protected:Npn \__driver_pdf_link_minima: - { - \hbox_set:Nn \l__driver_pdf_model_box { Gg } - \__driver_postscript:x - { - /driver.linkdp.pad ~ - \dim_to_decimal:n - { - \dim_max:nn - { - \box_dp:N \l__driver_pdf_model_box - - \box_dp:N \l__driver_pdf_content_box - } - { 0pt } - } ~ - driver.pt.dvi ~ def - /driver.linkht.pad ~ - \dim_to_decimal:n - { - \dim_max:nn - { - \box_ht:N \l__driver_pdf_model_box - - \box_ht:N \l__driver_pdf_content_box - } - { 0pt } - } ~ - driver.pt.dvi ~ def - } - } -\cs_new_protected:Npn \__driver_driver_link_outerbox:n #1 - { - \__driver_postscript:x - { - /driver.outerbox - [ - \dim_to_decimal:n {#1} ~ - \dim_to_decimal:n { -\box_dp:N \l__driver_pdf_model_box } ~ - \dim_to_decimal:n { #1 + \textwidth } ~ - \dim_to_decimal:n { \box_ht:N \l__driver_pdf_model_box } - ] - [ exch { driver.pt.dvi } forall ] def - /driver.baselineskip ~ - \dim_to_decimal:n { \tex_baselineskip:D } ~ dup ~ 0 ~ gt - { driver.pt.dvi ~ def } - { pop ~ pop } - ifelse - } - } -\cs_new_protected:Npn \__driver_pdf_link_sf_save: - { - \int_gset:Nn \g__driver_pdf_link_sf_int - { - \mode_if_horizontal:TF - { \tex_spacefactor:D } - { 0 } - } - } -\cs_new_protected:Npn \__driver_pdf_link_sf_restore: - { - \mode_if_horizontal:T - { - \int_compare:nNnT \g__driver_pdf_link_sf_int > { 0 } - { \int_set_eq:NN \tex_spacefactor:D \g__driver_pdf_link_sf_int } - } - } -\use_none:n - { - \cs_if_exist:NT \@makecol@hook - { - \tl_put_right:Nn \@makecol@hook - { - \box_if_empty:NF \@cclv - { - \vbox_set:Nn \@cclv - { - \__driver_postscript:n - { - driver.globaldict /driver.brokenlink.rect ~ known - { driver.bordertracking.continue } - if - } - \vbox_unpack_drop:N \@cclv - \__driver_postscript:n - { driver.bordertracking.endpage } - } - } - } - \tl_set:Nn \l__driver_breaklink_pdfmark_tl { driver.pdfmark } - \cs_set_eq:NN \__driver_breaklink_postscript:n \__driver_postscript:n - \cs_set_eq:NN \__driver_breaklink_usebox:N \hbox_unpack:N - } - } -\cs_new:Npn \driver_pdf_link_last: - { { driver.obj \int_use:N \g__driver_pdf_link_int } } -\cs_new_protected:Npn \driver_pdf_link_margin:n #1 - { - \__driver_postscript:x - { - /driver.linkmargin { \dim_to_decimal:n {#1} ~ driver.pt.dvi } def - } - } -\cs_new_protected:Npn \driver_pdf_destination:nn #1#2 - { - \__driver_postscript:n { driver.dest.anchor } - \__driver_pdfmark:x - { - /View - [ - \str_case:nnF {#2} - { - { xyz } { /XYZ ~ driver.dest.point ~ null } - { fit } { /Fit } - { fitb } { /FitB } - { fitbh } { /FitBH ~ driver.dest.y } - { fitbv } { /FitBV ~ driver.dest.x } - { fith } { /FitH ~ driver.dest.y } - { fitv } { /FitV ~ driver.dest.x } - } - { - /XYZ ~ driver.dest.point ~ \fp_eval:n { (#2) / 100 } - } - ] - /Dest ( \exp_not:n {#1} ) cvn - /DEST - } - } -\cs_new_protected:Npn \driver_pdf_destination_rectangle:nn #1#2 - { - \group_begin: - \hbox_set:Nn \l__driver_internal_box {#2} - \box_move_down:nn - { \box_dp:N \l__driver_internal_box } - { \hbox:n { \__driver_postscript:n { driver.save.ll } } } - \box_use:N \l__driver_internal_box - \box_move_up:nn - { \box_ht:N \l__driver_internal_box } - { \hbox:n { \__driver_postscript:n { driver.save.ur } } } - \__driver_pdfmark:n - { - /View - [ - /FitR ~ - driver.llx ~ driver.lly ~ driver.dest2device ~ - driver.urx ~ driver.ury ~ driver.dest2device - ] - /Dest ( #1 ) cvn - /DEST - } - \group_end: - } -\cs_new_protected:Npn \driver_pdf_compresslevel:n #1 { } -\cs_new_protected:Npn \driver_pdf_compress_objects:n #1 { } -\cs_new_protected:Npn \driver_pdf_version_major_gset:n #1 { } -\cs_new_protected:Npn \driver_pdf_version_minor_gset:n #1 { } -\cs_new:Npn \driver_pdf_version_major: { -1 } -\cs_new:Npn \driver_pdf_version_minor: { -1 } -%% -%% -%% End of file `l3dvips.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def deleted file mode 100644 index fb15c593f01..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def +++ /dev/null @@ -1,487 +0,0 @@ -%% -%% This is file `l3dvisvgm.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3drivers.dtx (with options: `package,dvisvgm') -%% l3drivers-basics.dtx (with options: `package,dvisvgm') -%% l3drivers-color.dtx (with options: `package,dvisvgm') -%% l3drivers-box.dtx (with options: `package,dvisvgm') -%% l3drivers-draw.dtx (with options: `package,dvisvgm') -%% l3drivers-graphics.dtx (with options: `package,dvisvgm') -%% l3drivers-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 "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3drivers.dtx -%% File: l3drivers-basics.dtx -\ProvidesExplFile - {l3dvisvgm.def}{2019-04-06}{} - {L3 Experimental driver: dvisvgm} -\cs_new_eq:NN \__driver_literal:e \tex_special:D -\cs_new_protected:Npn \__driver_literal:n #1 - { \__driver_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__driver_literal:n { x } -\box_new:N \l__driver_internal_box -\cs_new_protected:Npn \__driver_literal_svg:n #1 - { \__driver_literal:n { dvisvgm:raw~ #1 { ?nl } } } -\cs_generate_variant:Nn \__driver_literal_svg:n { x } -\cs_new_protected:Npn \__driver_scope_begin: - { \__driver_literal_svg:n { <g> } } -\cs_new_protected:Npn \__driver_scope_end: - { \__driver_literal_svg:n { </g> } } -\cs_new_protected:Npn \__driver_scope_begin:n #1 - { \__driver_literal_svg:n { <g~ #1 > } } -\cs_generate_variant:Nn \__driver_scope_begin:n { x } -%% File: l3drivers-color.dtx -\cs_new_protected:Npn \driver_color_pickup:N #1 { } -\AtBeginDocument - { - \@ifpackageloaded { color } - { - \cs_set_protected:Npn \driver_color_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 \__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 } } - } - { } - } -\cs_new_protected:Npn \driver_color_cmyk:nnnn #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:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \driver_color_rgb:nnn #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 { #1 } } -\cs_new_protected:Npn \__driver_color_select:n #1 - { - \__driver_literal:n { color~push~ #1 } - \group_insert_after:N \__driver_color_reset: - } -\cs_generate_variant:Nn \__driver_color_select:n { x } -\cs_new_protected:Npn \__driver_color_reset: - { \__driver_literal:n { color~pop } } -%% File: l3drivers-box.dtx -\cs_new_protected:Npn \driver_box_use_clip:N #1 - { - \int_gincr:N \g__driver_clip_path_int - \__driver_literal_svg:x - { < clipPath~id = " l3cp \int_use:N \g__driver_clip_path_int " > } - \__driver_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 - " - /> - } - \__driver_literal_svg:n - { < /clipPath > } - \__driver_scope_begin:n - { - transform = - " - translate ( { ?x } , { ?y } ) ~ - scale ( 1 , -1 ) - " - } - \__driver_scope_begin:x - { - clip-path = - "url ( \c_hash_str l3cp \int_use:N \g__driver_clip_path_int ) " - } - \__driver_scope_begin:n - { - transform = - " - scale ( -1 , 1 ) ~ - translate ( { ?x } , { ?y } ) ~ - scale ( -1 , -1 ) - " - } - \box_use:N #1 - \__driver_scope_end: - \__driver_scope_end: - \__driver_scope_end: - } -\int_new:N \g__driver_clip_path_int -\cs_new_protected:Npn \driver_box_use_rotate:Nn #1#2 - { - \__driver_scope_begin:x - { - transform = - " - rotate - ( \fp_eval:n { round ( -(#2) , 5 ) } , ~ { ?x } , ~ { ?y } ) - " - } - \box_use:N #1 - \__driver_scope_end: - } -\cs_new_protected:Npn \driver_box_use_scale:Nnn #1#2#3 - { - \__driver_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 } - \__driver_scope_end: - } -%% File: l3drivers-draw.dtx -\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_svg:n -\cs_generate_variant:Nn \__driver_draw_literal:n { x } -\cs_new_protected:Npn \driver_draw_begin: - { - \driver_draw_scope_begin: - \__driver_draw_scope:n { transform="translate({?x},{?y})~scale(1,-1)" } - } -\cs_new_protected:Npn \driver_draw_end: - { \driver_draw_scope_end: } -\cs_new_protected:Npn \driver_draw_scope_begin: - { - \int_set_eq:NN - \l__driver_draw_scope_int - \g__driver_draw_scope_int - \group_begin: - \int_gzero:N \g__driver_draw_scope_int - } -\cs_new_protected:Npn \driver_draw_scope_end: - { - \prg_replicate:nn - { \g__driver_draw_scope_int } - { \__driver_draw_literal:n { </g> } } - \group_end: - \int_gset_eq:NN - \g__driver_draw_scope_int - \l__driver_draw_scope_int - } -\cs_new_protected:Npn \__driver_draw_scope:n #1 - { - \__driver_draw_literal:n { <g~ #1 > } - \int_gincr:N \g__driver_draw_scope_int - } -\cs_generate_variant:Nn \__driver_draw_scope:n { x } -\int_new:N \g__driver_draw_scope_int -\int_new:N \l__driver_draw_scope_int -\cs_new_protected:Npn \driver_draw_moveto:nn #1#2 - { - \__driver_draw_add_to_path:n - { M ~ \dim_to_decimal:n {#1} ~ \dim_to_decimal:n {#2} } - } -\cs_new_protected:Npn \driver_draw_lineto:nn #1#2 - { - \__driver_draw_add_to_path:n - { L ~ \dim_to_decimal:n {#1} ~ \dim_to_decimal:n {#2} } - } -\cs_new_protected:Npn \driver_draw_rectangle:nnnn #1#2#3#4 - { - \__driver_draw_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 \driver_draw_curveto:nnnnnn #1#2#3#4#5#6 - { - \__driver_draw_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 \__driver_draw_add_to_path:n #1 - { - \tl_gset:Nx \g__driver_draw_path_tl - { - \g__driver_draw_path_tl - \tl_if_empty:NF \g__driver_draw_path_tl { \c_space_tl } - #1 - } - } -\tl_new:N \g__driver_draw_path_tl -\cs_new_protected:Npn \driver_draw_evenodd_rule: - { \__driver_draw_scope:n { fill-rule="evenodd" } } -\cs_new_protected:Npn \driver_draw_nonzero_rule: - { \__driver_draw_scope:n { fill-rule="nonzero" } } -\cs_new_protected:Npn \driver_draw_closepath: - { \__driver_draw_add_to_path:n { Z } } -\cs_new_protected:Npn \__driver_draw_path:n #1 - { - \bool_if:NTF \g__driver_draw_clip_bool - { - \int_gincr:N \g__driver_clip_path_int - \__driver_draw_literal:x - { - < clipPath~id = " l3cp \int_use:N \g__driver_clip_path_int " > - { ?nl } - <path~d=" \g__driver_draw_path_tl "/> { ?nl } - < /clipPath > { ? nl } - < - use~xlink:href = - "\c_hash_str l3path \int_use:N \g__driver_path_int " ~ - #1 - /> - } - \__driver_draw_scope:x - { - clip-path = - "url( \c_hash_str l3cp \int_use:N \g__driver_clip_path_int)" - } - } - { - \__driver_draw_literal:x - { <path ~ d=" \g__driver_draw_path_tl " ~ #1 /> } - } - \tl_gclear:N \g__driver_draw_path_tl - \bool_gset_false:N \g__driver_draw_clip_bool - } -\int_new:N \g__driver_path_int -\cs_new_protected:Npn \driver_draw_stroke: - { \__driver_draw_path:n { style="fill:none" } } -\cs_new_protected:Npn \driver_draw_closestroke: - { - \driver_draw_closepath: - \driver_draw_stroke: - } -\cs_new_protected:Npn \driver_draw_fill: - { \__driver_draw_path:n { style="stroke:none" } } -\cs_new_protected:Npn \driver_draw_fillstroke: - { \__driver_draw_path:n { } } -\cs_new_protected:Npn \driver_draw_clip: - { \bool_gset_true:N \g__driver_draw_clip_bool } -\bool_new:N \g__driver_draw_clip_bool -\cs_new_protected:Npn \driver_draw_discardpath: - { - \bool_if:NT \g__driver_draw_clip_bool - { - \int_gincr:N \g__driver_clip_path_int - \__driver_draw_literal:x - { - < clipPath~id = " l3cp \int_use:N \g__driver_clip_path_int " > - { ?nl } - <path~d=" \g__driver_draw_path_tl "/> { ?nl } - < /clipPath > - } - \__driver_draw_scope:x - { - clip-path = - "url( \c_hash_str l3cp \int_use:N \g__driver_clip_path_int)" - } - } - \tl_gclear:N \g__driver_draw_path_tl - \bool_gset_false:N \g__driver_draw_clip_bool - } -\cs_new_protected:Npn \driver_draw_dash_pattern:nn #1#2 - { - \use:x - { - \__driver_draw_dash_aux:nn - { \clist_map_function:nn {#1} \__driver_draw_dash:n } - { \dim_to_decimal:n {#2} } - } - } -\cs_new:Npn \__driver_draw_dash:n #1 - { , \dim_to_decimal_in_bp:n {#1} } -\cs_new_protected:Npn \__driver_draw_dash_aux:nn #1#2 - { - \__driver_draw_scope:x - { - stroke-dasharray = - " - \tl_if_empty:oTF { \use_none:n #1 } - { none } - { \use_none:n #1 } - " ~ - stroke-offset=" #2 " - } - } -\cs_new_protected:Npn \driver_draw_linewidth:n #1 - { \__driver_draw_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } } -\cs_new_protected:Npn \driver_draw_miterlimit:n #1 - { \__driver_draw_scope:x { stroke-miterlimit=" \fp_eval:n {#1} " } } -\cs_new_protected:Npn \driver_draw_cap_butt: - { \__driver_draw_scope:n { stroke-linecap="butt" } } -\cs_new_protected:Npn \driver_draw_cap_round: - { \__driver_draw_scope:n { stroke-linecap="round" } } -\cs_new_protected:Npn \driver_draw_cap_rectangle: - { \__driver_draw_scope:n { stroke-linecap="square" } } -\cs_new_protected:Npn \driver_draw_join_miter: - { \__driver_draw_scope:n { stroke-linejoin="miter" } } -\cs_new_protected:Npn \driver_draw_join_round: - { \__driver_draw_scope:n { stroke-linejoin="round" } } -\cs_new_protected:Npn \driver_draw_join_bevel: - { \__driver_draw_scope:n { stroke-linejoin="bevel" } } -\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4 - { - \use:x - { - \__driver_draw_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_eq:NN \driver_draw_color_stroke_cmyk:nnnn \driver_color_cmyk:nnnn -\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1 - { - \use:x - { - \__driver_draw_color_gray_aux:n - { \fp_eval:n { 100 * (#1) } } - } - } -\cs_new_protected:Npn \__driver_draw_color_gray_aux:n #1 - { \__driver_draw_color_fill:nnn {#1} {#1} {#1} } -\cs_new_eq:NN \driver_draw_color_stroke_gray:n \driver_color_gray:n -\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3 - { - \use:x - { - \__driver_draw_color_fill:nnn - { \fp_eval:n { 100 * (#1) } } - { \fp_eval:n { 100 * (#2) } } - { \fp_eval:n { 100 * (#3) } } - } - } -\cs_new_protected:Npn \__driver_draw_color_fill:nnn #1#2#3 - { - \__driver_draw_scope:x - { - fill = - " - rgb - ( - #1 \c_percent_str , - #2 \c_percent_str , - #3 \c_percent_str - ) - " - } - } -\cs_new_eq:NN \driver_draw_color_stroke_rgb:nnn \driver_color_rgb:nnn -\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4 - { - \__driver_draw_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 \driver_draw_box_use:Nnnnn #1#2#3#4#5#6#7 - { - \__driver_scope_begin: - \driver_draw_cm:nnnn {#2} {#3} {#4} {#5} - \__driver_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 - \__driver_literal_svg:n { </g> } - \__driver_scope_end: - } -%% File: l3drivers-graphics.dtx -\AtBeginDocument - { - \cs_new_eq:NN \driver_graphics_getbb_png:n \graphics_extract_bb:n - \cs_new_eq:NN \driver_graphics_getbb_jpg:n \graphics_extract_bb:n - } -\cs_new_protected:Npn \driver_graphics_include_png:n #1 - { - \__driver_literal:x - { - dvisvgm:img~ - \dim_to_decimal:n { \l_graphics_ury_dim } ~ - \dim_to_decimal:n { \l_graphics_ury_dim } ~ - \__driver_graphics_include_bitmap_quote:w #1 " #1 " \q_stop - } - } -\cs_new_eq:NN \driver_graphics_include_jpg:n \driver_graphics_include_png:n -\cs_new:Npn \__driver_graphics_include_bitmap_quote:w #1 " #2 " #3 \q_stop - { " #2 " } -%% File: l3drivers-pdf.dtx -\cs_new_protected:Npn \driver_pdf_catalog_gput:nn #1#2 { } -\cs_new_protected:Npn \driver_pdf_info_gput:nn #1#2 { } -\cs_new_protected:Npn \driver_pdf_object_new:nn #1#2 { } -\cs_new:Npn \driver_pdf_object_ref:n #1 { } -\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2 { } -\cs_new_protected:Npn \driver_pdf_compresslevel:n #1 { } -\cs_new_protected:Npn \driver_pdf_compress_objects:n #1 { } -\cs_new_protected:Npn \driver_pdf_version_major_gset:n #1 { } -\cs_new_protected:Npn \driver_pdf_version_minor_gset:n #1 { } -\cs_new:Npn \driver_pdf_version_major: { -1 } -\cs_new:Npn \driver_pdf_version_minor: { -1 } -%% -%% -%% End of file `l3dvisvgm.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def deleted file mode 100644 index 3afb54a6b05..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def +++ /dev/null @@ -1,690 +0,0 @@ -%% -%% This is file `l3pdfmode.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3drivers.dtx (with options: `package,pdfmode') -%% l3drivers-basics.dtx (with options: `package,pdfmode') -%% l3drivers-color.dtx (with options: `package,pdfmode') -%% l3drivers-box.dtx (with options: `package,pdfmode') -%% l3drivers-draw.dtx (with options: `package,pdfmode') -%% l3drivers-graphics.dtx (with options: `package,pdfmode') -%% l3drivers-pdf.dtx (with options: `package,pdfmode') -%% -%% 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 "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3drivers.dtx -%% File: l3drivers-basics.dtx -\ProvidesExplFile - {l3pdfmode.def}{2019-04-06}{} - {L3 Experimental driver: PDF mode} -\cs_new_eq:NN \__driver_literal:e \tex_special:D -\cs_new_protected:Npn \__driver_literal:n #1 - { \__driver_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__driver_literal:n { x } -\box_new:N \l__driver_internal_box -\cs_new_protected:Npx \__driver_literal_pdf:n #1 - { - \cs_if_exist:NTF \tex_pdfextension:D - { \tex_pdfextension:D literal } - { \tex_pdfliteral:D } - { \exp_not:N \exp_not:n {#1} } - } -\cs_generate_variant:Nn \__driver_literal_pdf:n { x } -\cs_new_protected:Npx \__driver_scope_begin: - { - \cs_if_exist:NTF \tex_pdfextension:D - { \tex_pdfextension:D save \scan_stop: } - { \tex_pdfsave:D } - } -\cs_new_protected:Npx \__driver_scope_end: - { - \cs_if_exist:NTF \tex_pdfextension:D - { \tex_pdfextension:D restore \scan_stop: } - { \tex_pdfrestore:D } - } -\cs_new_protected:Npx \__driver_matrix:n #1 - { - \cs_if_exist:NTF \tex_pdfextension:D - { \tex_pdfextension:D setmatrix } - { \tex_pdfsetmatrix:D } - { \exp_not:N \exp_not:n {#1} } - } -\cs_generate_variant:Nn \__driver_matrix:n { x } -%% File: l3drivers-color.dtx -\cs_new_protected:Npn \driver_color_pickup:N #1 { } -\AtBeginDocument - { - \@ifpackageloaded { color } - { - \cs_set_protected:Npn \driver_color_pickup:N #1 - { - \exp_last_unbraced:Nx \__driver_color_pickup:w - { \current@color } ~ 0 ~ 0 ~ 0 \q_stop #1 - } - \cs_new_protected:Npn \__driver_color_pickup:w - #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \q_stop #7 - { - \str_if_eq:nnTF {#2} { g } - { \tl_set:Nn #7 { gray ~ #1 } } - { - \str_if_eq:nnTF {#4} { rg } - { \tl_set:Nn #7 { rgb ~ #1 ~ #2 ~ #3 } } - { - \str_if_eq:nnTF {#5} { k } - { \tl_set:Nn #7 { cmyk ~ #1 ~ #2 ~ #3 ~ #4 } } - { - \str_if_eq:nnTF {#2} { cs } - { - \tl_set:Nx #7 { spot ~ \use_none:n #1 ~ #5 } - } - { - \tl_set:Nn #7 { gray ~ 0 } - } - } - } - } - } - } - { } - } -\int_new:N \l__driver_color_stack_int -\cs_new_protected:Npn \driver_color_cmyk:nnnn #1#2#3#4 - { - \use:x - { - \__driver_color_cmyk:nnnn - { \fp_eval:n {#1} } - { \fp_eval:n {#2} } - { \fp_eval:n {#3} } - { \fp_eval:n {#4} } - } - } -\cs_new_protected:Npn \__driver_color_cmyk:nnnn #1#2#3#4 - { - \__driver_color_select:n - { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K } - } -\cs_new_protected:Npn \driver_color_gray:n #1 - { \exp_args:Nx \__driver_color_gray:n { \fp_eval:n {#1} } } -\cs_new_protected:Npn \__driver_color_gray:n #1 - { \__driver_color_select:n { #1 ~ g ~ #1 ~ G } } -\cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3 - { - \use:x - { - \__driver_color_rgb:nnn - { \fp_eval:n {#1} } - { \fp_eval:n {#2} } - { \fp_eval:n {#3} } - } - } -\cs_new_protected:Npn \__driver_color_rgb:nnn #1#2#3 - { \__driver_color_select:n { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } } -\cs_new_protected:Npn \driver_color_spot:nn #1#2 - { \__driver_color_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ sc ~ #2 ~ SC } } -\cs_new_protected:Npx \__driver_color_select:n #1 - { - \cs_if_exist:NTF \tex_pdfextension:D - { \tex_pdfextension:D colorstack } - { \tex_pdfcolorstack:D } - \exp_not:N \l__driver_color_stack_int push {#1} - \group_insert_after:N \exp_not:N \__driver_color_reset: - } -\cs_generate_variant:Nn \__driver_color_select:n { x } -\cs_new_protected:Npx \__driver_color_reset: - { - \cs_if_exist:NTF \tex_pdfextension:D - { \tex_pdfextension:D colorstack } - { \tex_pdfcolorstack:D } - \exp_not:N \l__driver_color_stack_int pop \scan_stop: - } -%% File: l3drivers-box.dtx -\cs_new_protected:Npn \driver_box_use_clip:N #1 - { - \__driver_scope_begin: - \__driver_literal_pdf:x - { - 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 } ~ - re~W~n - } - \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: - \box_set_wd:Nn #1 { 0pt } - \fp_set:Nn \l__driver_cos_fp { round ( cosd ( #2 ) , 5 ) } - \fp_compare:nNnT \l__driver_cos_fp = \c_zero_fp - { \fp_zero:N \l__driver_cos_fp } - \fp_set:Nn \l__driver_sin_fp { round ( sind ( #2 ) , 5 ) } - \__driver_matrix:x - { - \fp_use:N \l__driver_cos_fp \c_space_tl - \fp_compare:nNnTF \l__driver_sin_fp = \c_zero_fp - { 0~0 } - { - \fp_use:N \l__driver_sin_fp - \c_space_tl - \fp_eval:n { -\l__driver_sin_fp } - } - \c_space_tl - \fp_use:N \l__driver_cos_fp - } - \box_use:N #1 - \__driver_scope_end: - } -\fp_new:N \l__driver_cos_fp -\fp_new:N \l__driver_sin_fp -\cs_new_protected:Npn \driver_box_use_scale:Nnn #1#2#3 - { - \__driver_scope_begin: - \__driver_matrix:x - { - \fp_eval:n { round ( #2 , 5 ) } ~ - 0~0~ - \fp_eval:n { round ( #3 , 5 ) } - } - \hbox_overlap_right:n { \box_use:N #1 } - \__driver_scope_end: - } -%% File: l3drivers-draw.dtx -\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_pdf:n -\cs_generate_variant:Nn \__driver_draw_literal:n { x } -\cs_new_protected:Npn \driver_draw_begin: - { \driver_draw_scope_begin: } -\cs_new_protected:Npn \driver_draw_end: - { \driver_draw_scope_end: } -\cs_new_eq:NN \driver_draw_scope_begin: \__driver_scope_begin: -\cs_new_eq:NN \driver_draw_scope_end: \__driver_scope_end: -\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} ~ m } - } -\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} ~ l } - } -\cs_new_protected:Npn \driver_draw_curveto:nnnnnn #1#2#3#4#5#6 - { - \__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} ~ - \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~ - c - } - } -\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:Npn \driver_draw_stroke: - { \__driver_draw_literal:n { S } } -\cs_new_protected:Npn \driver_draw_closestroke: - { \__driver_draw_literal:n { s } } -\cs_new_protected:Npn \driver_draw_fill: - { - \__driver_draw_literal:x - { f \bool_if:NT \g__driver_draw_eor_bool * } - } -\cs_new_protected:Npn \driver_draw_fillstroke: - { - \__driver_draw_literal:x - { B \bool_if:NT \g__driver_draw_eor_bool * } - } -\cs_new_protected:Npn \driver_draw_clip: - { - \__driver_draw_literal:x - { W \bool_if:NT \g__driver_draw_eor_bool * } - } -\cs_new_protected:Npn \driver_draw_discardpath: - { \__driver_draw_literal:n { n } } -\cs_new_protected:Npn \driver_draw_dash_pattern:nn #1#2 - { - \__driver_draw_literal:x - { - [ - \exp_args:Nf \use:n - { \clist_map_function:nN {#1} \__driver_draw_dash:n } - ] ~ - \dim_to_decimal_in_bp:n {#2} ~ d - } - } -\cs_new:Npn \__driver_draw_dash: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} ~ w } - } -\cs_new_protected:Npn \driver_draw_miterlimit:n #1 - { \__driver_draw_literal:x { \fp_eval:n {#1} ~ M } } -\cs_new_protected:Npn \driver_draw_cap_butt: - { \__driver_draw_literal:n { 0 ~ J } } -\cs_new_protected:Npn \driver_draw_cap_round: - { \__driver_draw_literal:n { 1 ~ J } } -\cs_new_protected:Npn \driver_draw_cap_rectangle: - { \__driver_draw_literal:n { 2 ~ J } } -\cs_new_protected:Npn \driver_draw_join_miter: - { \__driver_draw_literal:n { 0 ~ j } } -\cs_new_protected:Npn \driver_draw_join_round: - { \__driver_draw_literal:n { 1 ~ j } } -\cs_new_protected:Npn \driver_draw_join_bevel: - { \__driver_draw_literal:n { 2 ~ j } } -\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4 - { - \__driver_color_fill_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } -\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4 - { - \__driver_color_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } -\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1 - { \__driver_color_fill_select:x { \fp_eval:n {#1} ~ g } } -\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1 - { \__driver_color_select:x { \fp_eval:n {#1} ~ G } } -\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3 - { - \__driver_color_fill_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg } - } -\cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3 - { - \__driver_color_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG } - } -\cs_new_eq:NN \__driver_color_fill_select:n \__driver_color_select:n -\cs_generate_variant:Nn \__driver_color_fill_select:n { x } -\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4 - { - \__driver_matrix:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} - } - } -\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5 - { - \__driver_scope_begin: - \driver_draw_cm:nnnn {#2} {#3} {#4} {#5} - \hbox_overlap_right:n { \box_use:N #1 } - \__driver_scope_end: - } -%% File: l3drivers-graphics.dtx -\tl_new:N \l__driver_graphics_attr_tl -\cs_new_protected:Npn \driver_graphics_getbb_jpg:n #1 - { - \int_zero:N \l_graphics_page_int - \tl_clear:N \l_graphics_pagebox_tl - \tl_set:Nx \l__driver_graphics_attr_tl - { - \tl_if_empty:NF \l_graphics_decodearray_tl - { :D \l_graphics_decodearray_tl } - \bool_if:NT \l_graphics_interpolate_bool - { :I } - } - \tl_clear:N \l__driver_graphics_attr_tl - \__driver_graphics_getbb_auxi:n {#1} - } -\cs_new_eq:NN \driver_graphics_getbb_png:n \driver_graphics_getbb_jpg:n -\cs_new_protected:Npn \driver_graphics_getbb_pdf:n #1 - { - \tl_clear:N \l_graphics_decodearray_tl - \bool_set_false:N \l_graphics_interpolate_bool - \tl_set:Nx \l__driver_graphics_attr_tl - { - : \l_graphics_pagebox_tl - \int_compare:nNnT \l_graphics_page_int > 1 - { :P \int_use:N \l_graphics_page_int } - } - \__driver_graphics_getbb_auxi:n {#1} - } -\cs_new_protected:Npn \__driver_graphics_getbb_auxi:n #1 - { - \graphics_bb_restore:xF { #1 \l__driver_graphics_attr_tl } - { \__driver_graphics_getbb_auxii:n {#1} } - } -\cs_new_protected:Npn \__driver_graphics_getbb_auxii:n #1 - { - \tex_immediate:D \tex_pdfximage:D - \bool_lazy_or:nnT - { \l_graphics_interpolate_bool } - { ! \tl_if_empty_p:N \l_graphics_decodearray_tl } - { - attr ~ - { - \tl_if_empty:NF \l_graphics_decodearray_tl - { /Decode~[ \l_graphics_decodearray_tl ] } - \bool_if:NT \l_graphics_interpolate_bool - { /Interpolate~true } - } - } - \int_compare:nNnT \l_graphics_page_int > 0 - { page ~ \int_use:N \l_graphics_page_int } - \tl_if_empty:NF \l_graphics_pagebox_tl - { \l_graphics_pagebox_tl } - {#1} - \hbox_set:Nn \l__driver_internal_box - { \tex_pdfrefximage:D \tex_pdflastximage:D } - \dim_set:Nn \l_graphics_urx_dim { \box_wd:N \l__driver_internal_box } - \dim_set:Nn \l_graphics_ury_dim { \box_ht:N \l__driver_internal_box } - \int_const:cn { c__driver_graphics_ #1 \l__driver_graphics_attr_tl _int } - { \tex_the:D \tex_pdflastximage:D } - \graphics_bb_save:x { #1 \l__driver_graphics_attr_tl } - } -\cs_new_protected:Npn \driver_graphics_include_jpg:n #1 - { - \tex_pdfrefximage:D - \int_use:c { c__driver_graphics_ #1 \l__driver_graphics_attr_tl _int } - } -\cs_new_eq:NN \driver_graphics_include_pdf:n \driver_graphics_include_jpg:n -\cs_new_eq:NN \driver_graphics_include_png:n \driver_graphics_include_jpg:n -\sys_if_shell:T - { - \str_new:N \l__driver_dir_str - \str_new:N \l__driver_name_str - \str_new:N \l__driver_ext_str - \cs_new_protected:Npn \driver_graphics_getbb_eps:n #1 - { - \file_parse_full_name:nNNN {#1} - \l__driver_dir_str - \l__driver_name_str - \l__driver_ext_str - \exp_args:Nx \__driver_graphics_getbb_eps:nn - { - \l__driver_name_str - \str_tail:N \l__driver_ext_str - -converted-to.pdf - } - {#1} - } - \cs_new_protected:Npn \__driver_graphics_getbb_eps:nn #1#2 - { - \file_compare_timestamp:nNnT {#2} > {#1} - { - \sys_shell_now:n - { repstopdf ~ #2 ~ #1 } - } - \tl_set:Nn \l_graphics_name_tl {#1} - \driver_graphics_getbb_pdf:n {#1} - } - \cs_new_protected:Npn \driver_graphics_include_eps:n #1 - { - \file_parse_full_name:nNNN {#1} - \l__driver_dir_str \l__driver_name_str \l__driver_ext_str - \exp_args:Nx \driver_graphics_include_pdf:n - { - \l__driver_name_str - \str_tail:N \l__driver_ext_str - -converted-to.pdf - } - } - } -%% File: l3drivers-pdf.dtx -\cs_new_protected:Npx \driver_pdf_annotation:nnnn #1#2#3#4 - { - \cs_if_exist:NTF \tex_pdfextension:D - { \tex_pdfextension:D annot ~ } - { \tex_pdfannot:D } - width ~ \exp_not:N \dim_eval:n {#1} ~ - height ~ \exp_not:N \dim_eval:n {#2} ~ - depth ~ \exp_not:N \dim_eval:n {#3} ~ - {#4} - } -\cs_new:Npx \driver_pdf_annotation_last: - { - \exp_not:N \tex_the:D - \cs_if_exist:NTF \tex_pdffeedback:D - { \exp_not:N \tex_pdffeedback:D annot ~ } - { \exp_not:N \tex_pdflastannot:D } - 0 ~ R - } -\cs_new_protected:Npn \driver_pdf_link_begin_goto:nnw #1#2 - { \__driver_pdf_link_begin:nnnw {#1} { goto~name } {#2} } -\cs_new_protected:Npn \driver_pdf_link_begin_user:nnw #1#2 - { \__driver_pdf_link_begin:nnnw {#1} { user } {#2} } -\cs_new_protected:Npx \__driver_pdf_link_begin:nnnw #1#2#3 - { - \cs_if_exist:NTF \tex_pdfextension:D - { \tex_pdfextension:D startlink ~ } - { \tex_pdfstartlink:D } - attr {#1} - #2 {#3} - } -\cs_new_protected:Npx \driver_pdf_link_end: - { - \cs_if_exist:NTF \tex_pdfextension:D - { \tex_pdfextension:D endlink \scan_stop: } - { \tex_pdfendlink:D } - } -\cs_new:Npx \driver_pdf_link_last: - { - \exp_not:N \tex_the:D - \cs_if_exist:NTF \tex_pdffeedback:D - { \exp_not:N \tex_pdffeedback:D lastlink \scan_stop: } - { \exp_not:N \tex_pdflastlink:D } - ~ 0 ~ R - } -\cs_new_protected:Npx \driver_pdf_link_margin:n #1 - { - \cs_if_exist:NTF \tex_pdfvariable:D - { \exp_not:N \tex_pdfvariable:D linkmargin } - { \exp_not:N \tex_pdflinkmargin:D } - \exp_not:N \dim_eval:n {#1} \scan_stop: - } -\cs_new_protected:Npx \driver_pdf_destination:nn #1#2 - { - \cs_if_exist:NTF \tex_pdfextension:D - { \exp_not:N \tex_pdfextension:D dest ~ } - { \exp_not:N \tex_pdfdest:D } - name {#1} - \exp_not:N \str_case:nnF {#2} - { - { xyz } { xyz } - { fit } { fit } - { fitb } { fitb } - { fitbh } { fitbh } - { fitbv } { fitbv } - { fith } { fith } - { fitv } { fitv } - } - { xyz ~ zoom \exp_not:N \fp_eval:n { #2 * 10 } } - \scan_stop: - } -\cs_new_protected:Npx \driver_pdf_destination_rectangle:nn #1#2 - { - \group_begin: - \hbox_set:Nn \l__driver_internal_box {#2} - \cs_if_exist:NTF \tex_pdfextension:D - { \exp_not:N \tex_pdfextension:D dest ~ } - { \exp_not:N \tex_pdfdest:D } - name {#1} - fitr ~ - width \exp_not:N \box_wd:N \l__driver_internal_box - height \exp_not:N \box_ht:N \l__driver_internal_box - depth \exp_not:N \box_dp:N \l__driver_internal_box - \box_use:N \l__driver_internal_box - \group_end: - } -\cs_new_protected:Npx \driver_pdf_catalog_gput:nn #1#2 - { - \cs_if_exist:NTF \tex_pdfextension:D - { \tex_pdfextension:D catalog } - { \tex_pdfcatalog:D } - { / #1 ~ #2 } - } -\cs_new_protected:Npx \driver_pdf_info_gput:nn #1#2 - { - \cs_if_exist:NTF \tex_pdfextension:D - { \tex_pdfextension:D info } - { \tex_pdfinfo:D } - { / #1 ~ #2 } - } -\prop_new:N \g__driver_pdf_object_prop -\group_begin: - \cs_set_protected:Npn \__driver_tmp:w #1#2 - { - \cs_new_protected:Npx \driver_pdf_object_new:nn ##1##2 - { - #1 reserveobjnum ~ - \int_const:cn - { c__driver_pdf_object_ \exp_not:N \tl_to_str:n {##1} _int } - {#2} - \prop_gput:Nnn \exp_not:N \g__driver_pdf_object_prop {##1} {##2} - } - } - \cs_if_exist:NTF \tex_pdfextension:D - { - \__driver_tmp:w - { \tex_pdfextension:D obj ~ } - { \exp_not:N \tex_pdffeedback:D lastobj } - } - { \__driver_tmp:w { \tex_pdfobj:D } { \tex_pdflastobj:D } } -\group_end: -\cs_new:Npn \driver_pdf_object_ref:n #1 - { \int_use:c { c__driver_pdf_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R } -\group_begin: - \cs_set_protected:Npn \__driver_tmp:w #1 - { - \cs_new_protected:Npn \driver_pdf_object_write:nn ##1##2 - { - \tex_immediate:D #1 useobjnum ~ - \int_use:c - { c__driver_pdf_object_ \tl_to_str:n {##1} _int } - \str_case_e:nn - { \prop_item:Nn \g__driver_pdf_object_prop {##1} } - { - { array } { { [ ~ \exp_not:n {##2} ~ ] } } - { dict } { { << ~ \exp_not:n {##2} ~ >> } } - { fstream } - { - stream ~ attr ~ { \__driver_exp_not_i:nn ##2 } ~ - file ~ { \__driver_exp_not_ii:nn ##2 } - } - { stream } - { - stream ~ attr ~ { \__driver_exp_not_i:nn ##2 } ~ - { \__driver_exp_not_ii:nn ##2 } - } - } - } - } - \cs_if_exist:NTF \tex_pdfextension:D - { \__driver_tmp:w { \tex_pdfextension:D obj ~ } } - { \__driver_tmp:w { \tex_pdfobj:D } } -\group_end: -\cs_new:Npn \__driver_exp_not_i:nn #1#2 { \exp_not:n {#1} } -\cs_new:Npn \__driver_exp_not_ii:nn #1#2 { \exp_not:n {#2} } -\cs_new_protected:Npx \driver_pdf_compresslevel:n #1 - { - \exp_not:N \tex_global:D - \cs_if_exist:NTF \tex_pdfcompresslevel:D - { \tex_pdfcompresslevel:D } - { \tex_pdfvariable:D compresslevel } - \exp_not:N \int_value:w \exp_not:N \int_eval:n {#1} \scan_stop: - } -\cs_new_protected:Npn \driver_pdf_compress_objects:n #1 - { - \str_if_eq:nnTF {#1} { true } - { \__driver_pdf_objcompresslevel:n { 2 } } - { \__driver_pdf_objcompresslevel:n { 0 } } - } -\cs_new_protected:Npx \__driver_pdf_objcompresslevel:n #1 - { - \exp_not:N \tex_global:D - \cs_if_exist:NTF \tex_pdfobjcompresslevel:D - { \tex_pdfobjcompresslevel:D } - { \tex_pdfvariable:D objcompresslevel } - #1 \scan_stop: - } -\cs_new_protected:Npx \driver_pdf_version_major_gset:n #1 - { - \cs_if_exist:NTF \tex_pdfvariable:D - { - \int_compare:nNnT \tex_luatexversion:D > { 106 } - { - \exp_not:N \tex_global:D \tex_pdfvariable:D majorversion - \exp_not:N \int_eval:n {#1} \scan_stop: - } - } - { - \cs_if_exist:NT \tex_pdfmajorversion:D - { - \exp_not:N \tex_global:D \tex_pdfmajorversion:D - \exp_not:N \int_eval:n {#1} \scan_stop: - } - } - } -\cs_new_protected:Npx \driver_pdf_version_minor_gset:n #1 - { - \exp_not:N \tex_global:D - \cs_if_exist:NTF \tex_pdfminorversion:D - { \exp_not:N \tex_pdfminorversion:D } - { \tex_pdfvariable:D minorversion } - \exp_not:N \int_eval:n {#1} \scan_stop: - } -\cs_new:Npx \driver_pdf_version_major: - { - \cs_if_exist:NTF \tex_pdfvariable:D - { - \int_compare:nNnTF \tex_luatexversion:D > { 106 } - { \exp_not:N \tex_the:D \tex_pdfvariable:D majorversion } - { 1 } - } - { - \cs_if_exist:NTF \tex_pdfmajorversion:D - { \exp_not:N \tex_the:D \tex_pdfmajorversion:D } - { 1 } - } - } -\cs_new:Npx \driver_pdf_version_minor: - { - \exp_not:N \tex_the:D - \cs_if_exist:NTF \tex_pdfminorversion:D - { \exp_not:N \tex_pdfminorversion:D } - { \tex_pdfvariable:D minorversion } - } -%% -%% -%% End of file `l3pdfmode.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def new file mode 100644 index 00000000000..a70bc9f6fe8 --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def @@ -0,0 +1,29 @@ +%% +%% This is file `l3str-enc-iso88591.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso88591') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso88591 } + { + } + { + } +%% +%% +%% End of file `l3str-enc-iso88591.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def new file mode 100644 index 00000000000..c24d358a553 --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def @@ -0,0 +1,75 @@ +%% +%% This is file `l3str-enc-iso885910.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso885910') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso885910 } + { + { A1 } { 0104 } + { A2 } { 0112 } + { A3 } { 0122 } + { A4 } { 012A } + { A5 } { 0128 } + { A6 } { 0136 } + { A8 } { 013B } + { A9 } { 0110 } + { AA } { 0160 } + { AB } { 0166 } + { AC } { 017D } + { AE } { 016A } + { AF } { 014A } + { B1 } { 0105 } + { B2 } { 0113 } + { B3 } { 0123 } + { B4 } { 012B } + { B5 } { 0129 } + { B6 } { 0137 } + { B8 } { 013C } + { B9 } { 0111 } + { BA } { 0161 } + { BB } { 0167 } + { BC } { 017E } + { BD } { 2015 } + { BE } { 016B } + { BF } { 014B } + { C0 } { 0100 } + { C7 } { 012E } + { C8 } { 010C } + { CA } { 0118 } + { CC } { 0116 } + { D1 } { 0145 } + { D2 } { 014C } + { D7 } { 0168 } + { D9 } { 0172 } + { E0 } { 0101 } + { E7 } { 012F } + { E8 } { 010D } + { EA } { 0119 } + { EC } { 0117 } + { F1 } { 0146 } + { F2 } { 014D } + { F7 } { 0169 } + { F9 } { 0173 } + { FF } { 0138 } + } + { + } +%% +%% +%% End of file `l3str-enc-iso885910.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def new file mode 100644 index 00000000000..f6b39e6d096 --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def @@ -0,0 +1,120 @@ +%% +%% This is file `l3str-enc-iso885911.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso885911') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso885911 } + { + { A1 } { 0E01 } + { A2 } { 0E02 } + { A3 } { 0E03 } + { A4 } { 0E04 } + { A5 } { 0E05 } + { A6 } { 0E06 } + { A7 } { 0E07 } + { A8 } { 0E08 } + { A9 } { 0E09 } + { AA } { 0E0A } + { AB } { 0E0B } + { AC } { 0E0C } + { AD } { 0E0D } + { AE } { 0E0E } + { AF } { 0E0F } + { B0 } { 0E10 } + { B1 } { 0E11 } + { B2 } { 0E12 } + { B3 } { 0E13 } + { B4 } { 0E14 } + { B5 } { 0E15 } + { B6 } { 0E16 } + { B7 } { 0E17 } + { B8 } { 0E18 } + { B9 } { 0E19 } + { BA } { 0E1A } + { BB } { 0E1B } + { BC } { 0E1C } + { BD } { 0E1D } + { BE } { 0E1E } + { BF } { 0E1F } + { C0 } { 0E20 } + { C1 } { 0E21 } + { C2 } { 0E22 } + { C3 } { 0E23 } + { C4 } { 0E24 } + { C5 } { 0E25 } + { C6 } { 0E26 } + { C7 } { 0E27 } + { C8 } { 0E28 } + { C9 } { 0E29 } + { CA } { 0E2A } + { CB } { 0E2B } + { CC } { 0E2C } + { CD } { 0E2D } + { CE } { 0E2E } + { CF } { 0E2F } + { D0 } { 0E30 } + { D1 } { 0E31 } + { D2 } { 0E32 } + { D3 } { 0E33 } + { D4 } { 0E34 } + { D5 } { 0E35 } + { D6 } { 0E36 } + { D7 } { 0E37 } + { D8 } { 0E38 } + { D9 } { 0E39 } + { DA } { 0E3A } + { DF } { 0E3F } + { E0 } { 0E40 } + { E1 } { 0E41 } + { E2 } { 0E42 } + { E3 } { 0E43 } + { E4 } { 0E44 } + { E5 } { 0E45 } + { E6 } { 0E46 } + { E7 } { 0E47 } + { E8 } { 0E48 } + { E9 } { 0E49 } + { EA } { 0E4A } + { EB } { 0E4B } + { EC } { 0E4C } + { ED } { 0E4D } + { EE } { 0E4E } + { EF } { 0E4F } + { F0 } { 0E50 } + { F1 } { 0E51 } + { F2 } { 0E52 } + { F3 } { 0E53 } + { F4 } { 0E54 } + { F5 } { 0E55 } + { F6 } { 0E56 } + { F7 } { 0E57 } + { F8 } { 0E58 } + { F9 } { 0E59 } + { FA } { 0E5A } + { FB } { 0E5B } + } + { + { DB } + { DC } + { DD } + { DE } + } +%% +%% +%% End of file `l3str-enc-iso885911.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def new file mode 100644 index 00000000000..24ed74b1c31 --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def @@ -0,0 +1,85 @@ +%% +%% This is file `l3str-enc-iso885913.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso885913') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso885913 } + { + { A1 } { 201D } + { A5 } { 201E } + { A8 } { 00D8 } + { AA } { 0156 } + { AF } { 00C6 } + { B4 } { 201C } + { B8 } { 00F8 } + { BA } { 0157 } + { BF } { 00E6 } + { C0 } { 0104 } + { C1 } { 012E } + { C2 } { 0100 } + { C3 } { 0106 } + { C6 } { 0118 } + { C7 } { 0112 } + { C8 } { 010C } + { CA } { 0179 } + { CB } { 0116 } + { CC } { 0122 } + { CD } { 0136 } + { CE } { 012A } + { CF } { 013B } + { D0 } { 0160 } + { D1 } { 0143 } + { D2 } { 0145 } + { D4 } { 014C } + { D8 } { 0172 } + { D9 } { 0141 } + { DA } { 015A } + { DB } { 016A } + { DD } { 017B } + { DE } { 017D } + { E0 } { 0105 } + { E1 } { 012F } + { E2 } { 0101 } + { E3 } { 0107 } + { E6 } { 0119 } + { E7 } { 0113 } + { E8 } { 010D } + { EA } { 017A } + { EB } { 0117 } + { EC } { 0123 } + { ED } { 0137 } + { EE } { 012B } + { EF } { 013C } + { F0 } { 0161 } + { F1 } { 0144 } + { F2 } { 0146 } + { F4 } { 014D } + { F8 } { 0173 } + { F9 } { 0142 } + { FA } { 015B } + { FB } { 016B } + { FD } { 017C } + { FE } { 017E } + { FF } { 2019 } + } + { + } +%% +%% +%% End of file `l3str-enc-iso885913.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def new file mode 100644 index 00000000000..e51b8534a99 --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def @@ -0,0 +1,60 @@ +%% +%% This is file `l3str-enc-iso885914.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso885914') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso885914 } + { + { A1 } { 1E02 } + { A2 } { 1E03 } + { A4 } { 010A } + { A5 } { 010B } + { A6 } { 1E0A } + { A8 } { 1E80 } + { AA } { 1E82 } + { AB } { 1E0B } + { AC } { 1EF2 } + { AF } { 0178 } + { B0 } { 1E1E } + { B1 } { 1E1F } + { B2 } { 0120 } + { B3 } { 0121 } + { B4 } { 1E40 } + { B5 } { 1E41 } + { B7 } { 1E56 } + { B8 } { 1E81 } + { B9 } { 1E57 } + { BA } { 1E83 } + { BB } { 1E60 } + { BC } { 1EF3 } + { BD } { 1E84 } + { BE } { 1E85 } + { BF } { 1E61 } + { D0 } { 0174 } + { D7 } { 1E6A } + { DE } { 0176 } + { F0 } { 0175 } + { F7 } { 1E6B } + { FE } { 0177 } + } + { + } +%% +%% +%% End of file `l3str-enc-iso885914.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def new file mode 100644 index 00000000000..5776213ff39 --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def @@ -0,0 +1,37 @@ +%% +%% This is file `l3str-enc-iso885915.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso885915') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso885915 } + { + { A4 } { 20AC } + { A6 } { 0160 } + { A8 } { 0161 } + { B4 } { 017D } + { B8 } { 017E } + { BC } { 0152 } + { BD } { 0153 } + { BE } { 0178 } + } + { + } +%% +%% +%% End of file `l3str-enc-iso885915.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def new file mode 100644 index 00000000000..b7376b0b252 --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def @@ -0,0 +1,69 @@ +%% +%% This is file `l3str-enc-iso885916.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso885916') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso885916 } + { + { A1 } { 0104 } + { A2 } { 0105 } + { A3 } { 0141 } + { A4 } { 20AC } + { A5 } { 201E } + { A6 } { 0160 } + { A8 } { 0161 } + { AA } { 0218 } + { AC } { 0179 } + { AE } { 017A } + { AF } { 017B } + { B2 } { 010C } + { B3 } { 0142 } + { B4 } { 017D } + { B5 } { 201D } + { B8 } { 017E } + { B9 } { 010D } + { BA } { 0219 } + { BC } { 0152 } + { BD } { 0153 } + { BE } { 0178 } + { BF } { 017C } + { C3 } { 0102 } + { C5 } { 0106 } + { D0 } { 0110 } + { D1 } { 0143 } + { D5 } { 0150 } + { D7 } { 015A } + { D8 } { 0170 } + { DD } { 0118 } + { DE } { 021A } + { E3 } { 0103 } + { E5 } { 0107 } + { F0 } { 0111 } + { F1 } { 0144 } + { F5 } { 0151 } + { F7 } { 015B } + { F8 } { 0171 } + { FD } { 0119 } + { FE } { 021B } + } + { + } +%% +%% +%% End of file `l3str-enc-iso885916.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def new file mode 100644 index 00000000000..ef2cd5ab200 --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def @@ -0,0 +1,86 @@ +%% +%% This is file `l3str-enc-iso88592.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso88592') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso88592 } + { + { A1 } { 0104 } + { A2 } { 02D8 } + { A3 } { 0141 } + { A5 } { 013D } + { A6 } { 015A } + { A9 } { 0160 } + { AA } { 015E } + { AB } { 0164 } + { AC } { 0179 } + { AE } { 017D } + { AF } { 017B } + { B1 } { 0105 } + { B2 } { 02DB } + { B3 } { 0142 } + { B5 } { 013E } + { B6 } { 015B } + { B7 } { 02C7 } + { B9 } { 0161 } + { BA } { 015F } + { BB } { 0165 } + { BC } { 017A } + { BD } { 02DD } + { BE } { 017E } + { BF } { 017C } + { C0 } { 0154 } + { C3 } { 0102 } + { C5 } { 0139 } + { C6 } { 0106 } + { C8 } { 010C } + { CA } { 0118 } + { CC } { 011A } + { CF } { 010E } + { D0 } { 0110 } + { D1 } { 0143 } + { D2 } { 0147 } + { D5 } { 0150 } + { D8 } { 0158 } + { D9 } { 016E } + { DB } { 0170 } + { DE } { 0162 } + { E0 } { 0155 } + { E3 } { 0103 } + { E5 } { 013A } + { E6 } { 0107 } + { E8 } { 010D } + { EA } { 0119 } + { EC } { 011B } + { EF } { 010F } + { F0 } { 0111 } + { F1 } { 0144 } + { F2 } { 0148 } + { F5 } { 0151 } + { F8 } { 0159 } + { F9 } { 016F } + { FB } { 0171 } + { FE } { 0163 } + { FF } { 02D9 } + } + { + } +%% +%% +%% End of file `l3str-enc-iso88592.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def new file mode 100644 index 00000000000..dc7cc7a88fd --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def @@ -0,0 +1,64 @@ +%% +%% This is file `l3str-enc-iso88593.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso88593') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso88593 } + { + { A1 } { 0126 } + { A2 } { 02D8 } + { A6 } { 0124 } + { A9 } { 0130 } + { AA } { 015E } + { AB } { 011E } + { AC } { 0134 } + { AF } { 017B } + { B1 } { 0127 } + { B6 } { 0125 } + { B9 } { 0131 } + { BA } { 015F } + { BB } { 011F } + { BC } { 0135 } + { BF } { 017C } + { C5 } { 010A } + { C6 } { 0108 } + { D5 } { 0120 } + { D8 } { 011C } + { DD } { 016C } + { DE } { 015C } + { E5 } { 010B } + { E6 } { 0109 } + { F5 } { 0121 } + { F8 } { 011D } + { FD } { 016D } + { FE } { 015D } + { FF } { 02D9 } + } + { + { A5 } + { AE } + { BE } + { C3 } + { D0 } + { E3 } + { F0 } + } +%% +%% +%% End of file `l3str-enc-iso88593.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def new file mode 100644 index 00000000000..2ac8afb3b32 --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def @@ -0,0 +1,79 @@ +%% +%% This is file `l3str-enc-iso88594.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso88594') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso88594 } + { + { A1 } { 0104 } + { A2 } { 0138 } + { A3 } { 0156 } + { A5 } { 0128 } + { A6 } { 013B } + { A9 } { 0160 } + { AA } { 0112 } + { AB } { 0122 } + { AC } { 0166 } + { AE } { 017D } + { B1 } { 0105 } + { B2 } { 02DB } + { B3 } { 0157 } + { B5 } { 0129 } + { B6 } { 013C } + { B7 } { 02C7 } + { B9 } { 0161 } + { BA } { 0113 } + { BB } { 0123 } + { BC } { 0167 } + { BD } { 014A } + { BE } { 017E } + { BF } { 014B } + { C0 } { 0100 } + { C7 } { 012E } + { C8 } { 010C } + { CA } { 0118 } + { CC } { 0116 } + { CF } { 012A } + { D0 } { 0110 } + { D1 } { 0145 } + { D2 } { 014C } + { D3 } { 0136 } + { D9 } { 0172 } + { DD } { 0168 } + { DE } { 016A } + { E0 } { 0101 } + { E7 } { 012F } + { E8 } { 010D } + { EA } { 0119 } + { EC } { 0117 } + { EF } { 012B } + { F0 } { 0111 } + { F1 } { 0146 } + { F2 } { 014D } + { F3 } { 0137 } + { F9 } { 0173 } + { FD } { 0169 } + { FE } { 016B } + { FF } { 02D9 } + } + { + } +%% +%% +%% End of file `l3str-enc-iso88594.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def new file mode 100644 index 00000000000..e8361b2b6fd --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def @@ -0,0 +1,123 @@ +%% +%% This is file `l3str-enc-iso88595.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso88595') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso88595 } + { + { A1 } { 0401 } + { A2 } { 0402 } + { A3 } { 0403 } + { A4 } { 0404 } + { A5 } { 0405 } + { A6 } { 0406 } + { A7 } { 0407 } + { A8 } { 0408 } + { A9 } { 0409 } + { AA } { 040A } + { AB } { 040B } + { AC } { 040C } + { AE } { 040E } + { AF } { 040F } + { B0 } { 0410 } + { B1 } { 0411 } + { B2 } { 0412 } + { B3 } { 0413 } + { B4 } { 0414 } + { B5 } { 0415 } + { B6 } { 0416 } + { B7 } { 0417 } + { B8 } { 0418 } + { B9 } { 0419 } + { BA } { 041A } + { BB } { 041B } + { BC } { 041C } + { BD } { 041D } + { BE } { 041E } + { BF } { 041F } + { C0 } { 0420 } + { C1 } { 0421 } + { C2 } { 0422 } + { C3 } { 0423 } + { C4 } { 0424 } + { C5 } { 0425 } + { C6 } { 0426 } + { C7 } { 0427 } + { C8 } { 0428 } + { C9 } { 0429 } + { CA } { 042A } + { CB } { 042B } + { CC } { 042C } + { CD } { 042D } + { CE } { 042E } + { CF } { 042F } + { D0 } { 0430 } + { D1 } { 0431 } + { D2 } { 0432 } + { D3 } { 0433 } + { D4 } { 0434 } + { D5 } { 0435 } + { D6 } { 0436 } + { D7 } { 0437 } + { D8 } { 0438 } + { D9 } { 0439 } + { DA } { 043A } + { DB } { 043B } + { DC } { 043C } + { DD } { 043D } + { DE } { 043E } + { DF } { 043F } + { E0 } { 0440 } + { E1 } { 0441 } + { E2 } { 0442 } + { E3 } { 0443 } + { E4 } { 0444 } + { E5 } { 0445 } + { E6 } { 0446 } + { E7 } { 0447 } + { E8 } { 0448 } + { E9 } { 0449 } + { EA } { 044A } + { EB } { 044B } + { EC } { 044C } + { ED } { 044D } + { EE } { 044E } + { EF } { 044F } + { F0 } { 2116 } + { F1 } { 0451 } + { F2 } { 0452 } + { F3 } { 0453 } + { F4 } { 0454 } + { F5 } { 0455 } + { F6 } { 0456 } + { F7 } { 0457 } + { F8 } { 0458 } + { F9 } { 0459 } + { FA } { 045A } + { FB } { 045B } + { FC } { 045C } + { FD } { 00A7 } + { FE } { 045E } + { FF } { 045F } + } + { + } +%% +%% +%% End of file `l3str-enc-iso88595.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def new file mode 100644 index 00000000000..912fb1067f7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def @@ -0,0 +1,109 @@ +%% +%% This is file `l3str-enc-iso88596.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso88596') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso88596 } + { + { AC } { 060C } + { BB } { 061B } + { BF } { 061F } + { C1 } { 0621 } + { C2 } { 0622 } + { C3 } { 0623 } + { C4 } { 0624 } + { C5 } { 0625 } + { C6 } { 0626 } + { C7 } { 0627 } + { C8 } { 0628 } + { C9 } { 0629 } + { CA } { 062A } + { CB } { 062B } + { CC } { 062C } + { CD } { 062D } + { CE } { 062E } + { CF } { 062F } + { D0 } { 0630 } + { D1 } { 0631 } + { D2 } { 0632 } + { D3 } { 0633 } + { D4 } { 0634 } + { D5 } { 0635 } + { D6 } { 0636 } + { D7 } { 0637 } + { D8 } { 0638 } + { D9 } { 0639 } + { DA } { 063A } + { E0 } { 0640 } + { E1 } { 0641 } + { E2 } { 0642 } + { E3 } { 0643 } + { E4 } { 0644 } + { E5 } { 0645 } + { E6 } { 0646 } + { E7 } { 0647 } + { E8 } { 0648 } + { E9 } { 0649 } + { EA } { 064A } + { EB } { 064B } + { EC } { 064C } + { ED } { 064D } + { EE } { 064E } + { EF } { 064F } + { F0 } { 0650 } + { F1 } { 0651 } + { F2 } { 0652 } + } + { + { A1 } + { A2 } + { A3 } + { A5 } + { A6 } + { A7 } + { A8 } + { A9 } + { AA } + { AB } + { AE } + { AF } + { B0 } + { B1 } + { B2 } + { B3 } + { B4 } + { B5 } + { B6 } + { B7 } + { B8 } + { B9 } + { BA } + { BC } + { BD } + { BE } + { C0 } + { DB } + { DC } + { DD } + { DE } + { DF } + } +%% +%% +%% End of file `l3str-enc-iso88596.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def new file mode 100644 index 00000000000..e3486353f1f --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def @@ -0,0 +1,108 @@ +%% +%% This is file `l3str-enc-iso88597.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso88597') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso88597 } + { + { A1 } { 2018 } + { A2 } { 2019 } + { A4 } { 20AC } + { A5 } { 20AF } + { AA } { 037A } + { AF } { 2015 } + { B4 } { 0384 } + { B5 } { 0385 } + { B6 } { 0386 } + { B8 } { 0388 } + { B9 } { 0389 } + { BA } { 038A } + { BC } { 038C } + { BE } { 038E } + { BF } { 038F } + { C0 } { 0390 } + { C1 } { 0391 } + { C2 } { 0392 } + { C3 } { 0393 } + { C4 } { 0394 } + { C5 } { 0395 } + { C6 } { 0396 } + { C7 } { 0397 } + { C8 } { 0398 } + { C9 } { 0399 } + { CA } { 039A } + { CB } { 039B } + { CC } { 039C } + { CD } { 039D } + { CE } { 039E } + { CF } { 039F } + { D0 } { 03A0 } + { D1 } { 03A1 } + { D3 } { 03A3 } + { D4 } { 03A4 } + { D5 } { 03A5 } + { D6 } { 03A6 } + { D7 } { 03A7 } + { D8 } { 03A8 } + { D9 } { 03A9 } + { DA } { 03AA } + { DB } { 03AB } + { DC } { 03AC } + { DD } { 03AD } + { DE } { 03AE } + { DF } { 03AF } + { E0 } { 03B0 } + { E1 } { 03B1 } + { E2 } { 03B2 } + { E3 } { 03B3 } + { E4 } { 03B4 } + { E5 } { 03B5 } + { E6 } { 03B6 } + { E7 } { 03B7 } + { E8 } { 03B8 } + { E9 } { 03B9 } + { EA } { 03BA } + { EB } { 03BB } + { EC } { 03BC } + { ED } { 03BD } + { EE } { 03BE } + { EF } { 03BF } + { F0 } { 03C0 } + { F1 } { 03C1 } + { F2 } { 03C2 } + { F3 } { 03C3 } + { F4 } { 03C4 } + { F5 } { 03C5 } + { F6 } { 03C6 } + { F7 } { 03C7 } + { F8 } { 03C8 } + { F9 } { 03C9 } + { FA } { 03CA } + { FB } { 03CB } + { FC } { 03CC } + { FD } { 03CD } + { FE } { 03CE } + } + { + { AE } + { D2 } + } +%% +%% +%% End of file `l3str-enc-iso88597.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def new file mode 100644 index 00000000000..414212db091 --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def @@ -0,0 +1,96 @@ +%% +%% This is file `l3str-enc-iso88598.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso88598') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso88598 } + { + { AA } { 00D7 } + { BA } { 00F7 } + { DF } { 2017 } + { E0 } { 05D0 } + { E1 } { 05D1 } + { E2 } { 05D2 } + { E3 } { 05D3 } + { E4 } { 05D4 } + { E5 } { 05D5 } + { E6 } { 05D6 } + { E7 } { 05D7 } + { E8 } { 05D8 } + { E9 } { 05D9 } + { EA } { 05DA } + { EB } { 05DB } + { EC } { 05DC } + { ED } { 05DD } + { EE } { 05DE } + { EF } { 05DF } + { F0 } { 05E0 } + { F1 } { 05E1 } + { F2 } { 05E2 } + { F3 } { 05E3 } + { F4 } { 05E4 } + { F5 } { 05E5 } + { F6 } { 05E6 } + { F7 } { 05E7 } + { F8 } { 05E8 } + { F9 } { 05E9 } + { FA } { 05EA } + { FD } { 200E } + { FE } { 200F } + } + { + { A1 } + { BF } + { C0 } + { C1 } + { C2 } + { C3 } + { C4 } + { C5 } + { C6 } + { C7 } + { C8 } + { C9 } + { CA } + { CB } + { CC } + { CD } + { CE } + { CF } + { D0 } + { D1 } + { D2 } + { D3 } + { D4 } + { D5 } + { D6 } + { D7 } + { D8 } + { D9 } + { DA } + { DB } + { DC } + { DD } + { DE } + { FB } + { FC } + } +%% +%% +%% End of file `l3str-enc-iso88598.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def new file mode 100644 index 00000000000..946ab0b41bf --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def @@ -0,0 +1,35 @@ +%% +%% This is file `l3str-enc-iso88599.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3str-convert.dtx (with options: `iso88599') +%% +%% 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 "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3str-convert.dtx +\str_declare_eight_bit_encoding:nnn { iso88599 } + { + { D0 } { 011E } + { DD } { 0130 } + { DE } { 015E } + { F0 } { 011F } + { FD } { 0131 } + { FE } { 015F } + } + { + } +%% +%% +%% End of file `l3str-enc-iso88599.def'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def deleted file mode 100644 index 49ee9115e3a..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def +++ /dev/null @@ -1,681 +0,0 @@ -%% -%% This is file `l3xdvipdfmx.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3drivers.dtx (with options: `package,xdvipdfmx') -%% l3drivers-basics.dtx (with options: `package,xdvipdfmx') -%% l3drivers-color.dtx (with options: `package,xdvipdfmx') -%% l3drivers-box.dtx (with options: `package,xdvipdfmx') -%% l3drivers-draw.dtx (with options: `package,xdvipdfmx') -%% l3drivers-graphics.dtx (with options: `package,xdvipdfmx') -%% l3drivers-pdf.dtx (with options: `package,xdvipdfmx') -%% -%% 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 "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3drivers.dtx -%% File: l3drivers-basics.dtx -\ProvidesExplFile - {l3xdvipdfmx.def}{2019-04-06}{} - {L3 Experimental driver: xdvipdfmx} -\cs_new_eq:NN \__driver_literal:e \tex_special:D -\cs_new_protected:Npn \__driver_literal:n #1 - { \__driver_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__driver_literal:n { x } -\box_new:N \l__driver_internal_box -\cs_new_protected:Npn \__driver_literal_pdf:n #1 - { \__driver_literal:n { pdf:literal~ #1 } } -\cs_generate_variant:Nn \__driver_literal_pdf:n { x } -\cs_new_protected:Npn \__driver_scope_begin: - { \__driver_literal:n { x:gsave } } -\cs_new_protected:Npn \__driver_scope_end: - { \__driver_literal:n { x:grestore } } -%% File: l3drivers-color.dtx -\cs_new_protected:Npn \driver_color_pickup:N #1 { } -\AtBeginDocument - { - \@ifpackageloaded { color } - { - \cs_set_protected:Npn \driver_color_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 \__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 } } - } - { } - } -\cs_new_protected:Npn \driver_color_cmyk:nnnn #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:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \driver_color_rgb:nnn #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 { #1 } } -\cs_new_protected:Npn \__driver_color_select:n #1 - { - \__driver_literal:n { color~push~ #1 } - \group_insert_after:N \__driver_color_reset: - } -\cs_generate_variant:Nn \__driver_color_select:n { x } -\cs_new_protected:Npn \__driver_color_reset: - { \__driver_literal:n { color~pop } } -%% File: l3drivers-box.dtx -\cs_new_protected:Npn \driver_box_use_clip:N #1 - { - \__driver_scope_begin: - \__driver_literal_pdf:x - { - 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 } ~ - re~W~n - } - \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:x - { - x:rotate~ - \fp_compare:nNnTF {#2} = \c_zero_fp - { 0 } - { \fp_eval:n { round ( #2 , 5 ) } } - } - \box_use:N #1 - \__driver_scope_end: - } -\cs_new_protected:Npn \driver_box_use_scale:Nnn #1#2#3 - { - \__driver_scope_begin: - \__driver_literal:x - { - x:scale~ - \fp_eval:n { round ( #2 , 5 ) } ~ - \fp_eval:n { round ( #3 , 5 ) } - } - \hbox_overlap_right:n { \box_use:N #1 } - \__driver_scope_end: - } -%% File: l3drivers-draw.dtx -\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_pdf:n -\cs_generate_variant:Nn \__driver_draw_literal:n { x } -\cs_new_protected:Npn \driver_draw_begin: - { \driver_draw_scope_begin: } -\cs_new_protected:Npn \driver_draw_end: - { \driver_draw_scope_end: } -\cs_new_eq:NN \driver_draw_scope_begin: \__driver_scope_begin: -\cs_new_eq:NN \driver_draw_scope_end: \__driver_scope_end: -\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} ~ m } - } -\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} ~ l } - } -\cs_new_protected:Npn \driver_draw_curveto:nnnnnn #1#2#3#4#5#6 - { - \__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} ~ - \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~ - c - } - } -\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:Npn \driver_draw_stroke: - { \__driver_draw_literal:n { S } } -\cs_new_protected:Npn \driver_draw_closestroke: - { \__driver_draw_literal:n { s } } -\cs_new_protected:Npn \driver_draw_fill: - { - \__driver_draw_literal:x - { f \bool_if:NT \g__driver_draw_eor_bool * } - } -\cs_new_protected:Npn \driver_draw_fillstroke: - { - \__driver_draw_literal:x - { B \bool_if:NT \g__driver_draw_eor_bool * } - } -\cs_new_protected:Npn \driver_draw_clip: - { - \__driver_draw_literal:x - { W \bool_if:NT \g__driver_draw_eor_bool * } - } -\cs_new_protected:Npn \driver_draw_discardpath: - { \__driver_draw_literal:n { n } } -\cs_new_protected:Npn \driver_draw_dash_pattern:nn #1#2 - { - \__driver_draw_literal:x - { - [ - \exp_args:Nf \use:n - { \clist_map_function:nN {#1} \__driver_draw_dash:n } - ] ~ - \dim_to_decimal_in_bp:n {#2} ~ d - } - } -\cs_new:Npn \__driver_draw_dash: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} ~ w } - } -\cs_new_protected:Npn \driver_draw_miterlimit:n #1 - { \__driver_draw_literal:x { \fp_eval:n {#1} ~ M } } -\cs_new_protected:Npn \driver_draw_cap_butt: - { \__driver_draw_literal:n { 0 ~ J } } -\cs_new_protected:Npn \driver_draw_cap_round: - { \__driver_draw_literal:n { 1 ~ J } } -\cs_new_protected:Npn \driver_draw_cap_rectangle: - { \__driver_draw_literal:n { 2 ~ J } } -\cs_new_protected:Npn \driver_draw_join_miter: - { \__driver_draw_literal:n { 0 ~ j } } -\cs_new_protected:Npn \driver_draw_join_round: - { \__driver_draw_literal:n { 1 ~ j } } -\cs_new_protected:Npn \driver_draw_join_bevel: - { \__driver_draw_literal:n { 2 ~ j } } -\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4 - { - \__driver_color_fill_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } -\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4 - { - \__driver_color_select:x - { - \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ - \fp_eval:n {#3} ~ \fp_eval:n {#4} ~ - k - } - } -\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1 - { \__driver_color_fill_select:x { \fp_eval:n {#1} ~ g } } -\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1 - { \__driver_color_select:x { \fp_eval:n {#1} ~ G } } -\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3 - { - \__driver_color_fill_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg } - } -\cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3 - { - \__driver_color_select:x - { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG } - } -\cs_new_eq:NN \__driver_color_fill_select:n \__driver_draw_literal:n -\cs_generate_variant:Nn \__driver_color_fill_select:n { x } -\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4 - { - \__driver_draw_cm_decompose:nnnnN {#1} {#2} {#3} {#4} - \__driver_draw_cm:nnnn - } -\cs_new_protected:Npn \__driver_draw_cm:nnnn #1#2#3#4 - { - \__driver_literal:x - { - x:rotate~ - \fp_compare:nNnTF {#1} = \c_zero_fp - { 0 } - { \fp_eval:n { round ( -#1 , 5 ) } } - } - \__driver_literal:x - { - x:scale~ - \fp_eval:n { round ( #2 , 5 ) } ~ - \fp_eval:n { round ( #3 , 5 ) } - } - \__driver_literal:x - { - x:rotate~ - \fp_compare:nNnTF {#4} = \c_zero_fp - { 0 } - { \fp_eval:n { round ( -#4 , 5 ) } } - } - } -\cs_new_protected:Npn \__driver_draw_cm_decompose:nnnnN #1#2#3#4#5 - { - \use:x - { - \__driver_draw_cm_decompose_auxi:nnnnN - { \fp_eval:n { (#1 + #4) / 2 } } - { \fp_eval:n { (#1 - #4) / 2 } } - { \fp_eval:n { (#3 + #2) / 2 } } - { \fp_eval:n { (#3 - #2) / 2 } } - } - #5 - } -\cs_new_protected:Npn \__driver_draw_cm_decompose_auxi:nnnnN #1#2#3#4#5 - { - \use:x - { - \__driver_draw_cm_decompose_auxii:nnnnN - { \fp_eval:n { 2 * sqrt ( #1 * #1 + #4 * #4 ) } } - { \fp_eval:n { 2 * sqrt ( #2 * #2 + #3 * #3 ) } } - { \fp_eval:n { atand ( #3 , #2 ) } } - { \fp_eval:n { atand ( #4 , #1 ) } } - } - #5 - } -\cs_new_protected:Npn \__driver_draw_cm_decompose_auxii:nnnnN #1#2#3#4#5 - { - \use:x - { - \__driver_draw_cm_decompose_auxiii:nnnnN - { \fp_eval:n { ( #4 - #3 ) / 2 } } - { \fp_eval:n { ( #1 + #2 ) / 2 } } - { \fp_eval:n { ( #1 - #2 ) / 2 } } - { \fp_eval:n { ( #4 + #3 ) / 2 } } - } - #5 - } -\cs_new_protected:Npn \__driver_draw_cm_decompose_auxiii:nnnnN #1#2#3#4#5 - { - \fp_compare:nNnTF { abs( #2 ) } > { abs ( #3 ) } - { #5 {#1} {#2} {#3} {#4} } - { #5 {#1} {#3} {#2} {#4} } - } -\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5 - { - \__driver_scope_begin: - \__driver_literal:x - { - pdf:btrans~matrix~ - \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ - \fp_eval:n {#4} ~ \fp_eval:n {#5} ~ - 0 ~ 0 - } - \hbox_overlap_right:n { \box_use:N #1 } - \__driver_literal:n { pdf:etrans } - \__driver_scope_end: - } -%% File: l3drivers-graphics.dtx -\AtBeginDocument - { \cs_new_eq:NN \driver_graphics_getbb_eps:n \graphics_read_bb:n } -\int_new:N \g__driver_graphics_int -\cs_new_protected:Npn \driver_graphics_include_eps:n #1 - { - \__driver_literal:x - { - PSfile = #1 \c_space_tl - llx = \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl - lly = \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl - urx = \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl - ury = \dim_to_decimal_in_bp:n \l_graphics_ury_dim - } - } -\cs_new_protected:Npn \driver_graphics_include_jpg:n #1 - { \__driver_graphics_include_auxi:nn {#1} { image } } -\cs_new_eq:NN \driver_graphics_include_png:n \driver_graphics_include_jpg:n -\cs_new_protected:Npn \__driver_graphics_include_auxi:nn #1#2 - { - \__driver_graphics_include_auxii:xnn - { - \tl_if_empty:NF \l_graphics_pagebox_tl - { : \l_graphics_pagebox_tl } - \int_compare:nNnT \l_graphics_page_int > 1 - { :P \int_use:N \l_graphics_page_int } - \tl_if_empty:NF \l_graphics_decodearray_tl - { :D \l_graphics_decodearray_tl } - \bool_if:NT \l_graphics_interpolate_bool - { :I } - } - {#1} {#2} - } -\cs_new_protected:Npn \__driver_graphics_include_auxii:nnn #1#2#3 - { - \int_if_exist:cTF { c__driver_graphics_ #2#1 _int } - { - \__driver_literal:x - { pdf:usexobj~@graphic \int_use:c { c__driver_graphics_ #2#1 _int } } - } - { \__driver_graphics_include_auxiii:nnn {#2} {#1} {#3} } - } -\cs_generate_variant:Nn \__driver_graphics_include_auxii:nnn { x } -\cs_new_protected:Npn \__driver_graphics_include_auxiii:nnn #1#2#3 - { - \int_gincr:N \g__driver_graphics_int - \int_const:cn { c__driver_graphics_ #1#2 _int } { \g__driver_graphics_int } - \__driver_literal:x - { - pdf:#3~ - @graphic \int_use:c { c__driver_graphics_ #1#2 _int } ~ - \int_compare:nNnT \l_graphics_page_int > 1 - { page ~ \int_use:N \l_graphics_page_int \c_space_tl } - \tl_if_empty:NF \l_graphics_pagebox_tl - { - pagebox ~ \l_graphics_pagebox_tl \c_space_tl - bbox ~ - \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl - \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl - \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl - \dim_to_decimal_in_bp:n \l_graphics_ury_dim \c_space_tl - } - (#1) - \bool_lazy_or:nnT - { \l_graphics_interpolate_bool } - { ! \tl_if_empty_p:N \l_graphics_decodearray_tl } - { - << - \tl_if_empty:NF \l_graphics_decodearray_tl - { /Decode~[ \l_graphics_decodearray_tl ] } - \bool_if:NT \l_graphics_interpolate_bool - { /Interpolate~true> } - >> - } - } - } -\cs_new_protected:Npn \driver_graphics_getbb_jpg:n #1 - { - \int_zero:N \l_graphics_page_int - \tl_clear:N \l_graphics_pagebox_tl - \__driver_graphics_getbb_auxi:nN {#1} \tex_XeTeXpicfile:D - } -\cs_new_eq:NN \driver_graphics_getbb_png:n \driver_graphics_getbb_jpg:n -\cs_new_protected:Npn \driver_graphics_getbb_pdf:n #1 - { - \tl_clear:N \l_graphics_decodearray_tl - \bool_set_false:N \l_graphics_interpolate_bool - \__driver_graphics_getbb_auxi:nN {#1} \tex_XeTeXpdffile:D - } -\cs_new_protected:Npn \__driver_graphics_getbb_auxi:nN #1#2 - { - \int_compare:nNnTF \l_graphics_page_int > 1 - { \__driver_graphics_getbb_auxii:VnN \l_graphics_page_int {#1} #2 } - { \__driver_graphics_getbb_auxiii:nNnn {#1} #2 { :P 1 } { page 1 } } - } -\cs_new_protected:Npn \__driver_graphics_getbb_auxii:nnN #1#2#3 - { \__driver_graphics_getbb_auxiii:nNnn {#2} #3 { :P #1 } { page #1 } } -\cs_generate_variant:Nn \__driver_graphics_getbb_auxii:nnN { V } -\cs_new_protected:Npn \__driver_graphics_getbb_auxiii:nNnn #1#2#3#4 - { - \tl_if_empty:NTF \l_graphics_pagebox_tl - { \__driver_graphics_getbb_auxiv:VnNnn \l_graphics_pagebox_tl } - { \__driver_graphics_getbb_auxv:nNnn } - {#1} #2 {#3} {#4} - } -\cs_new_protected:Npn \__driver_graphics_getbb_auxiv:nnNnn #1#2#3#4#5 - { - \use:x - { - \__driver_graphics_getbb_auxv:nNnn {#2} #3 { : #1 #4 } - { #5 ~ \__driver_graphics_getbb_pagebox:w #1 } - } - } -\cs_generate_variant:Nn \__driver_graphics_getbb_auxiv:nnNnn { V } -\cs_new_protected:Npn \__driver_graphics_getbb_auxv:nNnn #1#2#3#4 - { - \graphics_bb_restore:nF {#1#3} - { \__driver_graphics_getbb_auxvi:nNnn {#1} #2 {#3} {#4} } - } -\cs_new_protected:Npn \__driver_graphics_getbb_auxvi:nNnn #1#2#3#4 - { - \hbox_set:Nn \l__driver_internal_box { #2 #1 ~ #4 } - \dim_set:Nn \l_graphics_urx_dim { \box_wd:N \l__driver_internal_box } - \dim_set:Nn \l_graphics_ury_dim { \box_ht:N \l__driver_internal_box } - \graphics_bb_save:n {#1#3} - } -\cs_new:Npn \__driver_graphics_getbb_pagebox:w #1 box {#1} -\cs_new_protected:Npn \driver_graphics_include_pdf:n #1 - { - \tex_XeTeXpdffile:D - \__driver_graphics_include_pdf_quote:w #1 "#1" \q_stop \c_space_tl - \int_compare:nNnT \l_graphics_page_int > 0 - { page ~ \int_use:N \l_graphics_page_int \c_space_tl } - \exp_after:wN \__driver_graphics_getbb_pagebox:w \l_graphics_pagebox_tl - } -\cs_new:Npn \__driver_graphics_include_pdf_quote:w #1 " #2 " #3 \q_stop - { " #2 " } -%% File: l3drivers-pdf.dtx -\cs_new_protected:Npx \__driver_pdf:n #1 - { \__driver_literal:n { pdf: #1 } } -\cs_generate_variant:Nn \__driver_pdf:n { x } -\cs_new_protected:Npn \driver_pdf_catalog_gput:nn #1#2 - { \__driver_pdf:n { put ~ @catalog << /#1 ~ #2 >> } } -\cs_new_protected:Npn \driver_pdf_info_gput:nn #1#2 - { \__driver_pdf:n { docinfo << /#1 ~ #2 >> } } -\int_new:N \g__driver_pdf_object_int -\prop_new:N \g__driver_pdf_object_prop -\cs_new_protected:Npn \driver_pdf_object_new:nn #1#2 - { - \int_gincr:N \g__driver_pdf_object_int - \int_const:cn - { g__driver_pdf_object_ \tl_to_str:n {#1} _int } - { \g__driver_pdf_object_int } - \prop_gput:Nnn \g__driver_pdf_object_prop {#1} {#2} - } -\cs_new:Npn \driver_pdf_object_ref:n #1 - { @driver.obj \int_use:c { g__driver_pdf_object_ \tl_to_str:n {#1} _int } } -\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2 - { - \exp_args:Nx \__driver_pdf_object_write:nnn - { \prop_item:Nn \g__driver_pdf_object_prop {#1} } {#1} {#2} - } -\cs_new_protected:Npn \__driver_pdf_object_write:nnn #1#2#3 - { \use:c { __driver_pdf_object_write_ #1 :nn } {#2} {#3} } -\cs_new_protected:Npn \__driver_pdf_object_write_array:nn #1#2 - { - \__driver_pdf:x - { - obj ~ \driver_pdf_object_ref:n {#1} ~ - [ ~ \exp_not:n {#2} ~ ] - } - } -\cs_new_protected:Npn \__driver_pdf_object_write_dict:nn #1#2 - { - \__driver_pdf:x - { - obj ~ \driver_pdf_object_ref:n {#1} ~ - << ~ \exp_not:n {#2} ~ >> - } - } -\cs_new_protected:Npn \__driver_pdf_object_write_fstream:nn #1#2 - { \__driver_pdf_object_write_stream:nnnn { f } {#1} #2 } -\cs_new_protected:Npn \__driver_pdf_object_write_stream:nn #1#2 - { \__driver_pdf_object_write_stream:nnnn { } {#1} #2 } -\cs_new_protected:Npn \__driver_pdf_object_write_stream:nnnn #1#2#3#4 - { - \__driver_pdf:x - { - #1 stream ~ \driver_pdf_object_ref:n {#2} ~ - ( \exp_not:n {#4} ) ~ << \exp_not:n {#3} >> - - } - } -\bool_new:N \g__driver_landscape_bool -\AtBeginDocument - { - \cs_if_exist:NT \landscape - { - \tl_put_right:Nn \landscape - { \bool_gset_true:N \g__driver_landscape_bool } - \tl_put_left:Nn \endlandscape - { \bool_gset_false:N \g__driver_landscape_bool } - } - } -\int_new:N \g__driver_pdf_annotation_int -\cs_new_protected:Npn \driver_pdf_annotation:nnnn #1#2#3#4 - { - \bool_if:NTF \g__driver_landscape_bool - { - \box_move_up:nn {#2} - { - \vbox:n - { - \__driver_pdf_annotation:nnnn - { #2 + #3 } {#1} { 0pt } {#4} - } - } - } - { \__driver_pdf_annotation:nnnn {#1} {#2} {#3} {#4} } - } -\cs_new_protected:Npn \__driver_pdf_annotation:nnnn #1#2#3#4 - { - \int_gincr:N \g__driver_pdf_object_int - \int_gset_eq:NN \g__driver_pdf_annotation_int \g__driver_pdf_object_int - \__driver_pdf:x - { - ann ~ @driver.obj \int_use:N \g__driver_pdf_object_int \c_space_tl - width ~ \dim_eval:n {#1} ~ - height ~ \dim_eval:n {#2} ~ - depth ~ \dim_eval:n {#3} ~ - << #4 >> - } - } -\cs_new_protected:Npn \driver_pdf_link_begin_goto:nnw #1#2 - { \__driver_pdf_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } } -\cs_new_protected:Npn \driver_pdf_link_begin_user:nnw #1#2 - { \__driver_pdf_link_begin:n {#1#2} } -\cs_new_protected:Npn \__driver_pdf_link_begin:n #1 - { - \__driver_pdf:n - { - bann - << - /Type /Annot - #1 - >> - } - } -\cs_new_protected:Npn \driver_pdf_link_end: - { \__driver_pdf:n { eann } } -\cs_new:Npn \driver_pdf_link_last: { } -\cs_new_protected:Npn \driver_pdf_link_margin:n #1 - { \__driver_literal:x { dvipdfmx:config~g~ \dim_eval:n {#1} } } -\cs_new_protected:Npn \driver_pdf_destination:nn #1#2 - { - \__driver_pdf:x - { - dest ~ ( \exp_not:n {#1} ) - [ - @thispage - \str_case:nnF {#2} - { - { xyz } { /XYZ ~ @xpos ~ @ypos ~ null } - { fit } { /Fit } - { fitb } { /FitB } - { fitbh } { /FitBH } - { fitbv } { /FitBV ~ @xpos } - { fith } { /FitH ~ @ypos } - { fitv } { /FitV ~ @xpos } - } - { /XYZ ~ @xpos ~ @ypos ~ \fp_eval:n { (#2) / 100 } } - ] - } - } -\cs_new_protected:Npn \driver_pdf_destination_rectangle:nn #1#2 - { - \group_begin: - \hbox_set:Nn \l__driver_internal_box {#2} - \box_move_down:nn { \box_dp:N \l__driver_internal_box } - { - \hbox:n - { - \__driver_pdf:n { obj ~ @driver_#1_llx ~ @xpos } - \__driver_pdf:n { obj ~ @driver_#1_lly ~ @ypos } - } - } - \box_use:N \l__driver_internal_box - \box_move_up:nn { \box_ht:N \l__driver_internal_box } - { - \hbox:n - { - \__driver_pdf:n - { - dest ~ (#1) - [ - @thispage - /FitR ~ - @driver_#1_llx ~ @driver_#1_lly ~ - @xpos ~ @ypos - ] - } - } - } - \group_end: - } -\cs_new_protected:Npn \driver_pdf_compresslevel:n #1 - { \__driver_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } } -\cs_new_protected:Npn \driver_pdf_compress_objects:n #1 - { - \str_if_eq:nnF {#1} { true } - { \__driver_literal:n { dvipdfmx:config~C~0x40 } } - } -\cs_new_protected:Npn \driver_pdf_version_major:n #1 - { - \cs_gset:Npx \driver_pdf_version_major: { \int_eval:n {#1} } - \__driver_literal:x { pdf:majorversion \driver_pdf_version_major: } - } -\cs_new_protected:Npn \driver_pdf_version_minor:n #1 - { - \cs_gset:Npx \driver_pdf_version_minor: { \int_eval:n {#1} } - \__driver_literal:x { pdf:minorversion \driver_pdf_version_minor: } - } -\cs_new:Npn \driver_pdf_version_major: { 1 } -\cs_new:Npn \driver_pdf_version_minor: { 5 } -%% -%% -%% End of file `l3xdvipdfmx.def'. |