summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty')
-rw-r--r--Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty396
1 files changed, 389 insertions, 7 deletions
diff --git a/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty b/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty
index 53152fd41ed..3d3547c0648 100644
--- a/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty
+++ b/Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty
@@ -23,18 +23,400 @@
\DeclareRelease{v2}{2010-05-23}{lwarp-siunitx-v2.sty}
\DeclareCurrentRelease{}{2021-05-17}
-\PackageWarningNoLine{lwarp}
+\RequirePackage{xcolor}% for \convertcolorspec
+
+\LWR@ProvidesPackagePass{siunitx}[2022-02-15]
+
+\ExplSyntaxOn
+
+
+\cs_set_protected:Npn \siunitx_number_format:nN #1#2
+ {
+ \group_begin:
+ \bool_if:NTF \l_siunitx_number_parse_bool
+ {
+ \siunitx_number_parse:nN {#1} \l__siunitx_number_parsed_tl
+ \siunitx_number_process:NN \l__siunitx_number_parsed_tl \l__siunitx_number_parsed_tl
+ \tl_set:Nx \l__siunitx_number_outputted_tl
+ { \siunitx_number_output:N \l__siunitx_number_parsed_tl }
+ }
+ {
+ \tl_set:Nn \l__siunitx_number_outputted_tl
+ {
+ \LWR@subsingledollar{% lwarp
+ \textbackslash( % space
+ \LWR@HTMLsanitizedetokenized{%
+ \detokenize{#1}%
+ } \textbackslash)% lwarp
+ }%
+ {siunitx unparsed}%
+ {\ensuremath{#1}}% lwarp
+ }
+ }
+ \exp_args:NNNV \group_end:
+ \tl_set:Nn #2 \l__siunitx_number_outputted_tl
+ }
+\cs_set_protected:Npn \__siunitx_compound_unparsed:n #1
+ {
+ \tl_if_blank:nF {#1}
+ { \seq_put_right:Nn \l__siunitx_compound_tmp_seq
+ {
+ \LWR@subsingledollar{% lwarp
+ \textbackslash( % space
+ \LWR@HTMLsanitizedetokenized{%
+ \detokenize{#1}%
+ } \textbackslash)% lwarp
+ }%
+ {siunitx unparsed}%
+ {\ensuremath{#1}}% lwarp
+ }
+ }
+ }
+\cs_set_protected:Npn \__siunitx_print_aux:nn #1#2
+ {
+ \tl_if_empty:cTF { l__siunitx_print_ #1 _color_tl }
+ { \use:n }
+ { \exp_args:Nv \textcolor { l__siunitx_print_ #1 _color_tl } }
+ {
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% lwarp
+ {
+ \use:c
+ {
+ siunitx_print_
+ \tl_use:c { l__siunitx_print_ #1 _mode_tl } :n
+ }
+ {#2}
+ }
+ {
+ \bool_lazy_all:nTF% lwarp
+ {
+ {\l__siunitx_print_text_family_bool}
+ {\l__siunitx_print_text_series_bool}
+ {\l__siunitx_print_text_shape_bool}
+ }
+ {% No font control if reset-text-family/series/shape
+ \use:c
+ {
+ siunitx_print_% lwarp
+ text% lwarp
+ :n% lwarp
+ }% lwarp
+ {#2}% lwarp
+ }
+ {
+ \LWR@textcurrentfont{% lwarp
+ \use:c
+ {
+ siunitx_print_% lwarp
+ text% lwarp
+ :n% lwarp
+ }% lwarp
+ {#2}% lwarp
+ }
+ }
+ }
+ }
+ }
+\newcommand*{\LWR@siunitx@complexrootstyle}{textrm}
+
+\newcommand*{\LWR@siunitx@complexrmi}{\mathrm{i}}
+\newcommand*{\LWR@siunitx@complexrmj}{\mathrm{j}}
+
+\newcommand*{\LWR@siunitx@setcomplexroot}{%
+ \renewcommand*{\LWR@siunitx@complexrootstyle}{textit}%
+ \ifdefequal{\l__siunitx_complex_output_root_tl}{\LWR@siunitx@complexrmi}%
+ {\renewcommand*{\LWR@siunitx@complexrootstyle}{textrm}}%
+ {}%
+ \ifdefequal{\l__siunitx_complex_output_root_tl}{\LWR@siunitx@complexrmj}%
+ {\renewcommand*{\LWR@siunitx@complexrootstyle}{textrm}}%
+ {}%
+}
+\cs_set_protected:Npn \__siunitx_complex_format_auxii:n #1
+ {
+ \LWR@siunitx@setcomplexroot% lwarp
+ \__siunitx_complex_format_units:n {#1}
+ \tl_if_empty:NF \l__siunitx_complex_real_tl
+ { \exp_after:wN \__siunitx_complex_drop_exponent:nnnnnnn \l__siunitx_complex_real_tl }
+ \exp_after:wN \__siunitx_complex_format_sign:nnnnnnn \l__siunitx_complex_img_tl
+ \tl_set:Nx \l__siunitx_complex_tmp_tl
+ { \siunitx_number_output:NN \l__siunitx_complex_img_tl \q_nil }
+ \exp_after:wN \__siunitx_complex_extract_exponent:w \l__siunitx_complex_tmp_tl \q_stop
+ \tl_set:Nx \l__siunitx_complex_tmp_tl
+ {
+ \bool_lazy_or:nnTF
+ {
+ \bool_lazy_and_p:nn
+ { \l_siunitx_number_bracket_ambiguous_bool }
+ { ! \tl_if_empty_p:N \l__siunitx_complex_exp_tl }
+ }
+ {
+ ! \bool_lazy_any_p:n
+ {
+ { \tl_if_blank_p:n {#1} }
+ { \tl_if_empty_p:N \l__siunitx_complex_real_tl }
+ { \tl_if_empty_p:N \l__siunitx_complex_img_tl }
+ }
+ }
+ { \__siunitx_complex_format_bracket:n }
+ { \use:n }
+ {
+ \siunitx_number_output:N \l__siunitx_complex_real_tl
+ \exp_not:V \l__siunitx_complex_sign_tl
+ \bool_if:NF \l__siunitx_complex_root_after_bool
+ {
+ \InlineClass{\LWR@siunitx@complexrootstyle}% lwarp
+ {
+ \exp_not:V \l__siunitx_complex_output_root_tl
+ }
+ }
+ \exp_not:V \l__siunitx_complex_tmp_tl
+ \bool_if:NT \l__siunitx_complex_root_after_bool
+ {
+ \InlineClass{\LWR@siunitx@complexrootstyle}% lwarp
+ {
+ \exp_not:V \l__siunitx_complex_output_root_tl
+ }
+ }
+ }
+ \exp_not:V \l__siunitx_complex_exp_tl
+ }
+ }
+\cs_set_protected:Npn \__siunitx_angle_arc_print_auxii:nw
+ #1#2 \q_nil #3 \q_nil #4 \q_nil #5 \q_nil #6 \q_nil #7 \q_nil #8 \q_stop
+ {
+ \mode_if_math:TF
+ { \bool_set_true:N \l__siunitx_angle_tmp_bool }
+ { \bool_set_false:N \l__siunitx_angle_tmp_bool }
+ \siunitx_print_number:n {#2#3#4}
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% lwarp
+ {% lwarp
+ \tl_if_blank:nTF {#6}
+ { \__siunitx_angle_arc_print_auxvi:n {#1} }
+ {
+ \hbox_set:Nn \l__siunitx_angle_marker_box
+ {
+ \__siunitx_angle_arc_print_auxiii:n
+ { \siunitx_print_number:n {#5} }
+ }
+ \hbox_set:Nn \l__siunitx_angle_unit_box
+ {
+ \__siunitx_angle_arc_print_auxiii:n
+ {
+ \siunitx_unit_format:nN {#1} \l__siunitx_angle_tmp_tl
+ \siunitx_print_unit:V \l__siunitx_angle_tmp_tl
+ \skip_horizontal:n { -\scriptspace }
+ }
+ }
+ \dim_compare:nNnTF { \box_wd:N \l__siunitx_angle_marker_box } >
+ { \box_wd:N \l__siunitx_angle_unit_box }
+ {
+ \__siunitx_angle_arc_print_auxiv:NN
+ \l__siunitx_angle_marker_box
+ \l__siunitx_angle_unit_box
+ }
+ {
+ \__siunitx_angle_arc_print_auxiv:NN
+ \l__siunitx_angle_unit_box
+ \l__siunitx_angle_marker_box
+ }
+ \hbox_set_to_wd:Nnn \l__siunitx_angle_marker_box
+ \l__siunitx_angle_tmp_dim
+ {
+ \hbox_overlap_right:n
+ { \box_use_drop:N \l__siunitx_angle_marker_box }
+ \hbox_overlap_right:n
+ { \box_use_drop:N \l__siunitx_angle_unit_box }
+ \tex_hfil:D
+ }
+ \box_use:N \l__siunitx_angle_marker_box
+ \skip_horizontal:N \scriptspace
+ \siunitx_print_number:n {#6}
+ }
+ }%
+ {% lwarp: not in a lateximage, simplify for HTML
+ \tl_if_blank:nTF {#6}
+ { \__siunitx_angle_arc_print_auxvi:n {#1} }
+ {
+ \__siunitx_angle_arc_print_auxiii:n
+ {
+ \siunitx_print_number:n {#5}
+ }
+ \__siunitx_angle_arc_print_auxiii:n
+ {
+ \siunitx_unit_format:nN {#1} \l__siunitx_angle_tmp_tl
+ \siunitx_print_unit:V \l__siunitx_angle_tmp_tl
+ }
+ \siunitx_print_number:n {#6}
+ }
+ }% lwarp
+ }
+\cs_set_protected:Npn \__siunitx_print_text_fraction:Nnn #1#2#3
+ {
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% lwarp
{%
- **************\MessageBreak
- Siunitx version 3 is not yet supported by Lwarp.\MessageBreak
- V2 emulation is used here.\MessageBreak
- **************
+ \ensuremath
+ {
+ #1
+ { \mbox { \__siunitx_print_text_replace:n {#2} } }
+ { \mbox { \__siunitx_print_text_replace:n {#3} } }
+ }
+ }%
+ {% lwarp
+ { \mbox { \__siunitx_print_text_replace:n {#2} } }% lwarp
+ /% lwarp
+ { \mbox { \__siunitx_print_text_replace:n {#3} } }% lwarp
+ }% lwarp
+ }
+\cs_set_protected:Npn \__siunitx_unit_format_qualifier_subscript:
+ {
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% lwarp
+ {%
+ \__siunitx_unit_format_font:
+ \tl_set:Nx \l__siunitx_unit_part_tl
+ {
+ \c__siunitx_unit_math_subscript_tl
+ {
+ \exp_not:V \l_siunitx_unit_font_tl
+ { \exp_not:V \l__siunitx_unit_part_tl }
+ }
+ }
+ }
+ {% lwarp simplified for HTML:
+ \__siunitx_unit_format_font:
+ \tl_set:Nx \l__siunitx_unit_part_tl
+ {
+ \textsubscript
+ {
+ \exp_not:V \l_siunitx_unit_font_tl
+ { \exp_not:V \l__siunitx_unit_part_tl }
+ }
+ }
}
+ }
+\cs_set_protected:Npn \siunitx_quantity:nn #1#2
+ {
+ \group_begin:
+ \siunitx_unit_options_apply:n {#2}
+ \tl_if_blank:nTF {#1}
+ {
+ \siunitx_unit_format:nN {#2} \l__siunitx_quantity_unit_tl
+ \siunitx_print_unit:V \l__siunitx_quantity_unit_tl
+ }
+ {
+ \bool_if:NTF \l_siunitx_number_parse_bool
+ { \__siunitx_quantity_parsed:nn {#1} {#2} }
+ {
+ \tl_set:Nn \l__siunitx_quantity_number_tl {
+ \LWR@subsingledollar{% lwarp
+ \textbackslash( % space
+ \LWR@HTMLsanitizedetokenized{%
+ \detokenize{#1}%
+ } \textbackslash)% lwarp
+ }%
+ {siunitx unparsed}%
+ {\ensuremath{#1}}% lwarp
+ }
+ \siunitx_unit_format:nN {#2} \l__siunitx_quantity_unit_tl
+ \siunitx_quantity_print:VV
+ \l__siunitx_quantity_number_tl \l__siunitx_quantity_unit_tl
+ }
+ }
+ \group_end:
+ }
-\RequirePackage{xcolor}% for \convertcolorspec
+\newcommand*{\LWR@siunitx@nocancel}[1]{%
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}%
+ {\cancel{#1}}% SVG
+ {#1}% HTML
+}
+
+\AtBeginDocument{
+\__siunitx_unit_set_symbolic:Npnn \cancel
+ { }
+ { \__siunitx_unit_parse_special:n { \LWR@siunitx@nocancel } }% lwarp
+}
+\newcommand{\LWR@HTML@tablenum}[2][]{\num[#1]{#2}}
+\LWR@formatted{tablenum}
+\AtBeginDocument{
+\HTMLnewcolumntype{S}[1][]{>{\begingroup\sisetup{#1}}c<{\endgroup}}
+}
+\NewDocumentCommand{\HTMLDeclareSIUnit}{o +m m}
+{
+ \ifcsdef{ __siunitx_unit_ \token_to_str:N #2 :w }
+ {}
+ {
+ \PackageError{lwarp}
+ {%
+ First~use\MessageBreak
+ \space\space\protect\DeclareSIUnit{
+ \token_to_str:N#2}{...}\MessageBreak
+ before~using\MessageBreak
+ \space\space\protect\HTMLDeclareSIUnit{
+ \token_to_str:N#2}{...}%
+ }
+ {%
+ See~the~Lwarp~manual~section~about~special~cases,~
+ regarding~siunitx.%
+ }
+ }
+ \csNewCommandCopycs
+ { __orig_siunitx_unit_ \token_to_str:N #2 :w }
+ { __siunitx_unit_ \token_to_str:N #2 :w }
+ \DeclareSIUnit[#1]{#2}
+ {
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}
+ {\csuse{ __orig_siunitx_unit_ \token_to_str:N #2 :w }}
+ {#3}
+ }
+}
+
+\ExplSyntaxOff
+
+\AtBeginDocument{
+\HTMLDeclareSIUnit\celsius{\LWR@siunitx@textcelsius}
+\HTMLDeclareSIUnit\arcminute{\LWR@siunitx@textprime}
+\HTMLDeclareSIUnit\arcsecond{\LWR@siunitx@textdblprime}
+\HTMLDeclareSIUnit\elementarycharge{\textit{e}}
+\HTMLDeclareSIUnit\clight{\text{\textit{c}\textsubscript{0}}}
+\HTMLDeclareSIUnit\bohr{\text{\textit{a}\textsubscript{0}}}
+\HTMLDeclareSIUnit\electronmass{\text{\textit{m}\textsubscript{e}}}
+\HTMLDeclareSIUnit\hartree{\text{\textit{E}\textsubscript{h}}}
+\HTMLDeclareSIUnit\planckbar{\LWR@siunitx@textplanckbar}
+}% \AtBeginDocument
+
+\AtBeginDocument{
+\sisetup{
+ per-mode=symbol, % fraction is not seen by pdftotext
+ angle-symbol-degree = {\LWR@siunitx@textdegree},
+ angle-symbol-minute = {\LWR@siunitx@textprime} ,
+ angle-symbol-second = {\LWR@siunitx@textdblprime} ,
+}
+}
+\AtBeginDocument{
+\ifdef{\ltj@allalchar}
+ {\LWR@origRequirePackage{lwarp-lltjp-siunitx}}
+ {}
+}
+\LWR@origRequirePackage{lwarp-common-mathjax-siunitx}
+\CustomizeMathJax{\let\unit\si}
+\CustomizeMathJax{\let\qty\SI}
+\CustomizeMathJax{\let\qtylist\SIlist}
+\CustomizeMathJax{\let\qtyrange\SIrange}
+\CustomizeMathJax{\let\numproduct\num}
+\CustomizeMathJax{\let\qtyproduct\SI}
+\CustomizeMathJax{\let\complexnum\num}
+\CustomizeMathJax{\newcommand{\complexqty}[3][]{(\complexnum{#2})\si{#3}}}
+\ExplSyntaxOn
+\AtBeginDocument{
+\edef\LWR@siunitx@rangephrase{\l_siunitx_range_phrase_tl}
+\expandafter\CustomizeMathJax\expandafter{%
+ \expandafter\def\expandafter\LWRsiunitxrangephrase%
+ \expandafter{\LWR@siunitx@rangephrase}%
+}
+}
+\ExplSyntaxOff
-\RequirePackage{siunitx-v2}
\endinput
%%