comando que crea un número variable de espacios

comando que crea un número variable de espacios

Básicamente, mi problema es que quiero tratar el argumento de un comando como un número (y realizar operaciones aritméticas con él), pero solo puedo tratarlo como una cadena. En particular, quiero que mi comando inserte una cantidad variable de espacios, según el argumento. he probado esto

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

lo cual por supuesto no funciona, pero también

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

que tampoco funciona. ¿Qué hacer?

Respuesta1

Acabo de cambiar tu *a \dimexpr. Al hacerlo, #1 cmse evalúa como una longitud, yentoncesmultiplicado por .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}

ingrese la descripción de la imagen aquí

Respuesta2

La sintaxis TeX permite algo así como <number>\dimenque realiza la multiplicación. Puedes probar:

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

Testing\spc{1}Testing

Testing\spc{2}Testing

Testing\spc{5}Testing

\bye

información relacionada