Wie der Anleitung zu siunitx zu entnehmen ist, sind \metre etc. nur innerhalb von \si definiert. Beim Speichern einer Box wird im expandiert. Das muss auch so sein, weil der Inhalt bereits zu diesem Zeitpunkt die Ausmaße der Box bestimmt. Ein unexpandierter Inhalt hätte unbekannte Ausmaße. Ein box-Register hat aber immer bekannte Ausmaße (können mit \ht, \dp und \wd abgefragt werden).
Daher müssen dort \metre etc. bereits in \si verwendet werden:
Code:
\documentclass{scrartcl}
\usepackage{siunitx}
\begin{document}
\newsavebox{\boxname}
\sbox\boxname{\si{\metre\per\second}}
\si{\metre\per\second}
\usebox{\boxname}
\end{document}
Allgemein ist ein box-Register mit einer Seite oder auch nur mit einer fertigen Zeile einer Seite vergleichbar (je nachdem, ob es eine vertikale oder wie in diesem Fall eine horizontale Box ist). Für den Inhalt der Seite wird übrigens auch nur ein (spezielle) box-Register verwendet.
Alternativ könnte für Deinen Ansatz ein Makro verwendet werden:
Code:
\documentclass{scrartcl}
\usepackage{siunitx}
\newcommand*{\boxname}{}
\begin{document}
\renewcommand*{\boxname}{\metre\per\second}
\si{\metre\per\second}
\si{\boxname}
\end{document}
Lesezeichen