Это немного не отвечает, но для этой цели может быть полезно использовать siunitx
.
Что касается того, почему что-то может пойти не так в пределах заголовков, помните, что заголовки записываются в.lof
или .lot
файлов, так что вам придется беспокоиться о хрупкости или иным образом макросов.Корень этой проблемы заключается в том, что макросы раскрываются перед записью, и это означает, что когда они наконец выполняются - когда они читаются из файла при следующем запуске - они нене обязательно должен вести себя так, как можно было ожидать (я был смущен этим раньше).(Я не говорю, что это определенно ваша проблема, но ваше упоминание об ошибке, когда в подвижном аргументе означает, что это то, где я бы посмотрел в первую очередь).