Wie kann ich Berechnungen mit lua in siunitx nutzen?
Folgendes Minimalbeispiel kompiliert nicht:
\documentclass[varwidth]{standalone}
\usepackage{luacode}
\usepackage{siunitx}
% #1: Nachkommastellen; #2: Zähler; #3: Nenner
\newcommand\CalcPercent[3]{
\luaexec{tex.sprint(string.format("\%0.#1f", #2/#3*100))}
}
\begin{document}
\CalcPercent{0}{1}{3}
\CalcPercent{1}{1}{3}
\CalcPercent{2}{1}{3}
\qty{\CalcPercent{0}{1}{3}}{\percent} % <<- Das hier funktioniert nicht
\end{document}
Die Fehlermeldung ist wie folgt:
s-basic-dictionary-english.trsl)[\directlua]:1: invalid escape sequence near '"\%'.
\luacode@dbg@exec ...code@maybe@printdbg {#1} #1 }
l.19 \qty{\CalcPercent{0}{1}{3}}{\percent}
% <<- Das hier funktioniert...
Interessanterweise steht in der Anleitung Folgendes:
> The \luaexec command is similar to \luadirect but with a few additional features: \\ gives a double
backslash (see note below) \% a percent character, and ~ just works. For single backslashes, \string is
still needed. Also, TEX macros are expanded.
Folgender [Hinweis][1] hat auch nicht geholfen:
% #1: Nachkommastellen; #2: Zähler; #3: Nenner
\makeatletter\let\percentchar\@percentchar\makeatother
\newcommand\CalcPercent[3]{
\luaexec{tex.sprint(string.format("\percentchar 0.#1f", #2/#3*100))}
}
Den Compiler stört augenscheinlich das Prozent im Formatstring "\%0.#1f".
Ich hatte mal vor Jahren eine [ähnliche Frage][2] gestellt, jedoch komme ich mit diesem Lösungsansatz auch nicht weiter.
Hat jemand eine Idee, was ich ändern müsste, damit es funktioniert?
[1]: https://tex.stackexchange.com/questions/687859/cant-use-percent-sign-in-directlua
[2]: https://tex.stackexchange.com/questions/94252/lualatex-and-string-format