comando que cria um número variável de espaços

comando que cria um número variável de espaços

Basicamente, meu problema é que quero tratar o argumento de um comando como um número (e realizar operações aritméticas nele), mas só consigo tratá-lo como uma string. Em particular, quero que meu comando insira um número variável de espaços, dependendo do argumento. Eu tentei isso

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

o que obviamente não funciona, mas também

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

o que também não funciona. O que fazer?

Responder1

Acabei de mudar o seu *para um \dimexpr. Ao fazer isso, #1 cmé avaliado como um comprimento, eentãomultiplicado 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}

insira a descrição da imagem aqui

Responder2

A sintaxe do TeX permite algo como <number>\dimenwhich realiza a multiplicação. Podes tentar:

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

Testing\spc{1}Testing

Testing\spc{2}Testing

Testing\spc{5}Testing

\bye

informação relacionada