% \RequirePackage だと fontspec にオプション指定したときにエラー出る
}
+\@ifpackageloaded{siunitx}{%
+ \chardef\ltj@patch@siunitx@execute\z@\input{lltjp-siunitx.sty}%
+}{%
+ \AtBeginOfPackageFile*{siunitx}{\input{lltjp-siunitx.sty}}%
+}
+\AtEndOfPackageFile*{siunitx}{\csname __ltj_siunitx_patch:\endcsname}
%%------------------ all done
\ltj@latex@AtEnd
--- /dev/null
+%
+% lltjp-siunitx.sty
+%
+
+\NeedsTeXFormat{LaTeX2e}
+
+\RequirePackage{luatexja}
+\ExplSyntaxOn
+\cs_generate_variant:Nn \tl_if_in:NnT { coT }
+\cs_new:Nn \__ltj_siunix_patch_inner:n {
+ \cs_if_exist:cT { #1_tl } {
+ \tl_if_in:coT { #1_tl } { \tex_char:D } {
+ \tl_replace_all:cnn { #1_tl } { \tex_char:D } { \ltjalchar }
+ }
+ }
+}
+\cs_new:Nn \__ltj_siunix_patch_inner_math:n {
+ \__ltj_siunix_patch_inner:n { l__siunitx_#1_math }
+ \__ltj_siunix_patch_inner:n { l__siunitx_#1_text }
+}
+\cs_new:Nn \__ltj_siunitx_patch: {
+ \AtBeginDocument {
+ \__ltj_siunix_patch_inner:n { c__siunitx_minus }
+ \__ltj_siunix_patch_inner:n { c__siunitx_mu }
+ \__ltj_siunix_patch_inner_math:n { angstrom }
+ \__ltj_siunix_patch_inner_math:n { arcminute }
+ \__ltj_siunix_patch_inner_math:n { arcsecond }
+ \__ltj_siunix_patch_inner_math:n { ohm }
+ }
+}
+\ifdefined\ltj@patch@siunitx@executed\__ltj_siunitx_patch:\fi
+
+\ExplSyntaxOff
+\endinput
--- /dev/null
+\documentclass{scrbook}
+ %\usepackage{luatexja}
+ \usepackage{fontspec}
+ \usepackage{luatexja-fontspec}
+ \usepackage[
+ mode=text,
+ detect-all,
+]{siunitx}
+ %\usepackage{luatexja-fontspec}
+\makeatletter
+\typeout{\meaning\@begindocumenthook}
+\begin{document}
+ \ifdefined\gtfamily\gtfamily\fi Ω
+ {\ExplSyntaxOn\makeatletter
+ \ttfamily\meaning\@begindocumenthook}
+
+ \SI{-2.5e-10}{mol.L^{-1}}\SI{1}{\micro\metre\angstrom\arcminute\arcsecond\ohm}
+ \vrule\SI{}{\ohm}\vrule
+ \end{document}
\ No newline at end of file