OSDN Git Service

Fix #43130
[luatex-ja/luatexja.git] / src / patches / lltjp-siunitx.sty
1 %
2 % lltjp-siunitx.sty 2021-10-31
3 %
4
5 \NeedsTeXFormat{LaTeX2e}
6
7 \RequirePackage{siunitx}
8 \makeatletter
9 \ExplSyntaxOn
10 \cs_if_exist:NTF \siunitx_print_text:n {% siunitx v3.00
11 \cs_set_protected:Npn \siunitx_print_text:n #1
12   {
13     \text
14       {
15         \ltj@allalchar % <--- LuaTeX-ja
16         \bool_if:NT \l__siunitx_print_text_family_bool
17           {
18             \fontfamily { \familydefault }
19             \selectfont
20           }
21         \bool_if:NT \l__siunitx_print_text_series_bool
22           {
23             \fontseries { \seriesdefault }
24             \selectfont
25           }
26         \bool_if:NT \l__siunitx_print_text_shape_bool
27           {
28             \fontshape { \shapedefault }
29             \selectfont
30           }
31         \__siunitx_print_text_replace:n {#1}
32       }
33   }
34 \cs_set_eq:NN \ltj_orig__siunitx_table_collect_begin:w \__siunitx_table_collect_begin:w
35 \cs_set_protected:Npn \__siunitx_table_collect_begin:w #1 \relax
36   { \ltj_orig__siunitx_table_collect_begin:w }
37 }% siunitx v3.00 end
38 {% siunitx v2.xx
39 \cs_generate_variant:Nn \tl_if_in:NnT { coT }
40 \cs_new:Nn \__ltj_siunix_patch_inner:n {
41   \cs_if_exist:cT { #1_tl } {
42     \tl_if_in:coT { #1_tl } { \tex_char:D } {
43           \tl_replace_all:cnn { #1_tl } { \tex_char:D } { \ltjalchar }
44         }
45   }
46 }
47 \cs_new:Nn \__ltj_siunix_patch_inner_math:n {
48    \__ltj_siunix_patch_inner:n { l__siunitx_#1_math }
49    \__ltj_siunix_patch_inner:n { l__siunitx_#1_text }
50 }
51 \AtBeginDocument {
52   \__ltj_siunix_patch_inner:n { c__siunitx_minus }
53   \__ltj_siunix_patch_inner:n { c__siunitx_mu }
54   \__ltj_siunix_patch_inner_math:n { angstrom }
55   \__ltj_siunix_patch_inner_math:n { arcminute }
56   \__ltj_siunix_patch_inner_math:n { arcsecond }
57   \__ltj_siunix_patch_inner_math:n { ohm }
58 }
59
60 %%%% new table column: S and s
61 \bool_new:N \l__ltj_siunitx_table_collect_relax_bool
62 \cs_set_protected:Npn \__siunitx_table_collect_begin_s: {
63   \bool_set_false:N \l__ltj_siunitx_table_collect_relax_bool
64   \cs_set_eq:NN \__siunitx_table_collect_token:N
65     \__siunitx_table_collect_token_s:N
66   \cs_set_eq:NN \__siunitx_table_print: \__siunitx_table_print_s:
67   \__siunitx_table_collect_init_s:
68   \__siunitx_table_collect_get:
69 }
70
71 \cs_set_protected:Npn \__siunitx_table_collect_not_braced:N #1
72   {
73         \token_if_eq_meaning:NNTF #1 \tex_relax:D {
74       \bool_if:NTF \l__ltj_siunitx_table_collect_relax_bool {
75                 \__siunitx_table_collect_not_braced_aux_i:N #1
76           } {
77             \bool_set_true:N \l__ltj_siunitx_table_collect_relax_bool
78           }
79         } {
80     \token_if_eq_meaning:NNF #1 \ltjfakeboxbdd {
81     \token_if_eq_meaning:NNF #1 \pltx@next@inhibitglue {
82     \token_if_eq_meaning:NNF #1 \tex_ignorespaces:D
83       {
84         \token_if_eq_meaning:NNF #1 \tex_unskip:D
85           { \__siunitx_table_collect_not_braced_aux_i:N #1 }
86       }
87         }}}
88     \__siunitx_table_collect_next:
89   }
90
91 \AtBeginDocument
92   {
93     \@ifpackageloaded { mdwtab }
94       {
95         \cs_set_protected:Npn \__siunitx_table_collect_not_braced:N #1
96           { 
97                 \token_if_eq_meaning:NNTF #1 \tex_relax:D {
98               \bool_if:NTF \l__ltj_siunitx_table_collect_relax_bool {
99                         \__siunitx_table_collect_not_braced_aux_i:N #1
100                   } {
101                     \bool_set_true:N \l__ltj_siunitx_table_collect_relax_bool
102                   }
103                 } {
104             \token_if_eq_meaning:NNF #1 \ltjfakeboxbdd {
105             \token_if_eq_meaning:NNF #1 \pltx@next@inhibitglue {
106             \token_if_eq_meaning:NNF #1 \tex_ignorespaces:D
107               {
108                 \token_if_eq_meaning:NNF #1 \tex_unskip:D
109                   {
110                     \token_if_eq_meaning:NNF #1 \tab@setcr
111                       {
112                         \token_if_eq_meaning:NNF #1 \@maybe@unskip
113                           { \__siunitx_table_collect_not_braced_aux_i:N #1 }
114                       }
115                   }
116               }
117             }}}
118             \__siunitx_table_collect_next:
119           }
120       }
121       { }
122   }
123 }
124 \ExplSyntaxOff
125 \endinput