команда, которая создает переменное количество пробелов

команда, которая создает переменное количество пробелов

По сути, моя проблема в том, что я хочу обрабатывать аргумент команды как число (и выполнять арифметические операции с ним), но я могу заставить его обрабатываться только как строка. В частности, я хочу, чтобы моя команда вставляла переменное количество пробелов в зависимости от аргумента. Я пробовал это

\newcommand{\spc}[1]{\-\hspace{.5 * #1 cm}} 

что, конечно, не работает, но также

\newcommand{\spc}[1]{ \foreach \x in {0, \dots, #1} {\hspace{.5 cm}}}

который тоже не работает. Что делать?

решение1

Я только что изменил ваш *на \dimexpr. При этом #1 cmis оценивается как длина, изатемумножается на .5.

\documentclass{article}
\newcommand{\spc}[1]{\-\hspace{.5 \dimexpr#1 cm}} 
\begin{document}
Testing\spc{1}Testing

Testing\spc{2}Testing

Testing\spc{5}Testing
\end{document}

введите описание изображения здесь

решение2

Синтаксис TeX допускает что-то вроде того <number>\dimen, что выполняет умножение. Вы можете попробовать:

\newdimen\spcdimen \spcdimen=.5cm
\def\spc#1{\hskip #1\spcdimen \relax}

Testing\spc{1}Testing

Testing\spc{2}Testing

Testing\spc{5}Testing

\bye

Связанный контент