OSDN Git Service

c6bebc36cde322dddbf86e2bec50af1dffd266c7
[luatex-ja/luatexja.git] / src / patches / lltjp-siunitx.sty
1 %
2 % lltjp-siunitx.sty 2019-06-06
3 %
4
5 \NeedsTeXFormat{LaTeX2e}
6
7 \RequirePackage{siunitx}
8 \makeatletter
9 \ExplSyntaxOn
10 \cs_generate_variant:Nn \tl_if_in:NnT { coT }
11 \cs_new:Nn \__ltj_siunix_patch_inner:n {
12   \cs_if_exist:cT { #1_tl } {
13     \tl_if_in:coT { #1_tl } { \tex_char:D } {
14           \tl_replace_all:cnn { #1_tl } { \tex_char:D } { \ltjalchar }
15         }
16   }
17 }
18 \cs_new:Nn \__ltj_siunix_patch_inner_math:n {
19    \__ltj_siunix_patch_inner:n { l__siunitx_#1_math }
20    \__ltj_siunix_patch_inner:n { l__siunitx_#1_text }
21 }
22 \AtBeginDocument {
23   \__ltj_siunix_patch_inner:n { c__siunitx_minus }
24   \__ltj_siunix_patch_inner:n { c__siunitx_mu }
25   \__ltj_siunix_patch_inner_math:n { angstrom }
26   \__ltj_siunix_patch_inner_math:n { arcminute }
27   \__ltj_siunix_patch_inner_math:n { arcsecond }
28   \__ltj_siunix_patch_inner_math:n { ohm }
29 }
30
31 %%%% new table column: S and s
32 \bool_new:N \l__ltj_siunitx_table_collect_relax_bool
33 \cs_set_protected:Npn \__siunitx_table_collect_begin_s: {
34   \bool_set_false:N \l__ltj_siunitx_table_collect_relax_bool
35   \cs_set_eq:NN \__siunitx_table_collect_token:N
36     \__siunitx_table_collect_token_s:N
37   \cs_set_eq:NN \__siunitx_table_print: \__siunitx_table_print_s:
38   \__siunitx_table_collect_init_s:
39   \__siunitx_table_collect_get:
40 }
41
42 \cs_set_protected:Npn \__siunitx_table_collect_not_braced:N #1
43   {
44         \token_if_eq_meaning:NNTF #1 \tex_relax:D {
45       \bool_if:NTF \l__ltj_siunitx_table_collect_relax_bool {
46                 \__siunitx_table_collect_not_braced_aux_i:N #1
47           } {
48             \bool_set_true:N \l__ltj_siunitx_table_collect_relax_bool
49           }
50         } {
51     \token_if_eq_meaning:NNF #1 \ltjfakeboxbdd {
52     \token_if_eq_meaning:NNF #1 \pltx@next@inhibitglue {
53     \token_if_eq_meaning:NNF #1 \tex_ignorespaces:D
54       {
55         \token_if_eq_meaning:NNF #1 \tex_unskip:D
56           { \__siunitx_table_collect_not_braced_aux_i:N #1 }
57       }
58         }}}
59     \__siunitx_table_collect_next:
60   }
61
62 \AtBeginDocument
63   {
64     \@ifpackageloaded { mdwtab }
65       {
66         \cs_set_protected:Npn \__siunitx_table_collect_not_braced:N #1
67           { 
68                 \token_if_eq_meaning:NNTF #1 \tex_relax:D {
69               \bool_if:NTF \l__ltj_siunitx_table_collect_relax_bool {
70                         \__siunitx_table_collect_not_braced_aux_i:N #1
71                   } {
72                     \bool_set_true:N \l__ltj_siunitx_table_collect_relax_bool
73                   }
74                 } {
75             \token_if_eq_meaning:NNF #1 \ltjfakeboxbdd {
76             \token_if_eq_meaning:NNF #1 \pltx@next@inhibitglue {
77             \token_if_eq_meaning:NNF #1 \tex_ignorespaces:D
78               {
79                 \token_if_eq_meaning:NNF #1 \tex_unskip:D
80                   {
81                     \token_if_eq_meaning:NNF #1 \tab@setcr
82                       {
83                         \token_if_eq_meaning:NNF #1 \@maybe@unskip
84                           { \__siunitx_table_collect_not_braced_aux_i:N #1 }
85                       }
86                   }
87               }
88             }}}
89             \__siunitx_table_collect_next:
90           }
91       }
92       { }
93   }
94
95 \ExplSyntaxOff
96 \endinput