luaexec ist nicht vollständig expandierbar, weshalb es nicht direkt im Argument von \qty verwendet werden kann. Stattdessen sollte hier \luadirect oder direkt \directlua verwendet wedren. Für die Berechnung könnte aber auch l3fp benutzt werden: \newcommand\calcPercent[3]{\fpeval{round((#2)/(#3)*100, #1)}}.
Der Befehl \luaexec verwendet \begingroup usw. weshalb er nicht vollständig expandierbar ist und als solches nicht direkt im Argument von \qty verwendet werden kann.
Es gibt verschiedene mögliche Abhilfen. Die eine ist, \directlua direkt zu verwenden (oder, wenn luacode's \luadirect bevorzugt wird eben diesen Befehl). Eine andere Alternative wäre, die Berechnungen von LaTeX anstellen zu lassen (mittels l3fp bzw. dem Befehl \fpeval). Folgendes Minimalbeispiel zeigt beides (und macht % direkt verwendbar und dafür ^^A zu einem Kommentar während wir unser \CalcPercent definieren).
Code, hier editierbar zum Übersetzen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
\documentclass[varwidth]{standalone}
\usepackage{siunitx}
\begingroup
\catcode`\%=12
\catcode`\^^A=14
^^A das ist das neue Kommentarzeichen, sollten überflüssige Leerzeichen
@dzaic wenn du meine E-Mailadresse herausfindest, kein Problem :) Aber sie hier hinschreiben werde ich nicht (ich habe aber ein zwei LaTeX Pakete geschrieben, in der Dokumentation zum expkv-bundle etwa wird man fündig).
luaexec
ist nicht vollständig expandierbar, weshalb es nicht direkt im Argument von\qty
verwendet werden kann. Stattdessen sollte hier\luadirect
oder direkt\directlua
verwendet wedren. Für die Berechnung könnte aber auchl3fp
benutzt werden:\newcommand\calcPercent[3]{\fpeval{round((#2)/(#3)*100, #1)}}
.