diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty | 396 |
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 %% |