Your issue is unrelated to luatex or the physics
package, you would see the same in classic TeX.
\boldsymbol
justt locally uses \boldmath
to select \mathversion{bold}
so this works well when you just have two math versions, normal
and bold
but if you define multiple math versions you need to also define multiple bold versions and arrange to switch them.
Here I just locally disable \mathversion
so that \mathversion{anything}
selects the bold version of the math version just selected, as this saves redefining the underlying commands.
I also just used FakeBold, although some of tehse do have a real bold math font that you coudl use, and a value of 3 is a bit excessive but makes it clear when debugging.
\documentclass{article}
\usepackage{amsmath}
\newcommand\blurb{$\alpha \pi \lambda \boldsymbol{\alpha\pi\lambda}$}
\usepackage[math-style=ISO,bold-style=ISO]{unicode-math}
%% Load 10 math fonts, plus two alternate/stylistic set variants
\setmathfont{Latin Modern Math}[version=LM]
%\setmathfont{Stix Math}[version=Stix]
\setmathfont{XITS Math}[version=XITS]
\setmathfont{XITS Math}[StylisticSet=1,version=XITS1]
\setmathfont{STIX Two Math}[version=Stix2] % see http://stixfonts.org/
%\setmathfont{Stix Two Math}[version=Stix2] % see http://stixfonts.org/
\setmathfont{Cambria Math}[version=Cambria]
\setmathfont{Asana Math}[version=Asana]
\setmathfont{Asana Math}[Alternate,version=AsanaAlt]
\setmathfont{TeX Gyre Pagella Math}[version=Pagella]
\setmathfont{TeX Gyre Termes Math}[version=Termes]
\setmathfont{TeX Gyre DejaVu Math}[version=DejaVu]
%\setmathfont{Neo Euler}[version=Euler]
\setmathfont{Euler Math}[version=Euler]
\setmathfont{Libertinus Math}[version=Libertinus]
\setmathfont{Latin Modern Math}[version=boldLM,FakeBold=3]
%\setmathfont{Stix Math}[version=Stix]
\setmathfont{XITS Math}[version=boldXITS,FakeBold=3]
\setmathfont{XITS Math}[StylisticSet=1,version=boldXITS1,FakeBold=3]
\setmathfont{STIX Two Math}[version=boldStix2,FakeBold=3] % see http://stixfonts.org/
%\setmathfont{Stix Two Math}[version=Stix2] % see http://stixfonts.org/
\setmathfont{Cambria Math}[version=boldCambria,FakeBold=3]
\setmathfont{Asana Math}[version=boldAsana,FakeBold=3]
\setmathfont{Asana Math}[Alternate,version=boldAsanaAlt,FakeBold=3]
\setmathfont{TeX Gyre Pagella Math}[version=boldPagella,FakeBold=3]
\setmathfont{TeX Gyre Termes Math}[version=boldTermes,FakeBold=3]
\setmathfont{TeX Gyre DejaVu Math}[version=boldDejaVu,FakeBold=3]
%\setmathfont{Neo Euler}[version=Euler]
\setmathfont{Euler Math}[version=boldEuler,FakeBold=3]
\setmathfont{Libertinus Math}[version=boldLibertinus,FakeBold=3]
\let\oldmathversion\mathversion
\def\bversion#1{\def\mathversion##1{\oldmathversion{bold#1}}}
\begin{document}
\renewcommand\arraystretch{1.8}
\begin{tabular}{@{}ll@{}}
Latin Modern & \mathversion{LM}\bversion{LM} \blurb \\
%Stix & \mathversion{Stix}\bversion{Stix} \blurb \\
XITS & \mathversion{XITS}\bversion{XITS} \blurb \\
XITS, StySet1& \mathversion{XITS1}\bversion{XITS1} \blurb \\
Stix Two & \mathversion{Stix2}\bversion{Stix2} \blurb \\
Cambria & \mathversion{Cambria}\bversion{Cambria} \blurb \\
Asana & \mathversion{Asana}\bversion{Asana} \blurb \\
Asana Alt & \mathversion{AsanaAlt}\bversion{AsanaAlt}\blurb \\
Pagella & \mathversion{Pagella}\bversion{Pagella} \blurb \\
Termes & \mathversion{Termes}\bversion{Termes} \blurb \\
DejaVu & \mathversion{DejaVu}\bversion{DejaVu} \blurb \\[0.5ex]
Neo Euler & \mathversion{Euler}\bversion{Euler} \blurb \\[0.5ex]
Libertinus Math& \mathversion{Libertinus}\bversion{Libertinus} \blurb
\end{tabular}
\end{document}
In a normal document, even with unicode-math
you would just use
\setmathfont{...}
to set up the normal version and \setmathfont[version=bold]{...}
to set up bold math.
Also as Mico shows For these particular characters OpenType math fonts have the bold glyphs in the same font so locally redefining \boldsymbol
to be \symbfit
would also work.
physics
? your title suggests an incompatibility with luatex, but your question says nothing about what that incompatibility consists in.unicode-math
tag. Feel free to revert.physics
package at all. It’s crap.