Befehl, der eine variable Anzahl von Leerzeichen erzeugt

Befehl, der eine variable Anzahl von Leerzeichen erzeugt

Mein Problem besteht im Wesentlichen darin, dass ich das Argument eines Befehls als Zahl behandeln (und arithmetische Operationen darauf ausführen) möchte, es aber nur als Zeichenfolge behandeln kann. Insbesondere möchte ich, dass mein Befehl je nach Argument eine variable Anzahl von Leerzeichen einfügt. Ich habe Folgendes versucht:

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

was natürlich nicht funktioniert, aber auch

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

was auch nicht funktioniert. Was tun?

Antwort1

Ich habe gerade Ihr *in ein geändert \dimexpr. Dadurch #1 cmwird als Länge ausgewertet undDannmultipliziert mit .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}

Bildbeschreibung hier eingeben

Antwort2

Die TeX-Syntax erlaubt etwas wie <number>\dimenwhich führt die Multiplikation durch. Sie können Folgendes versuchen:

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

Testing\spc{1}Testing

Testing\spc{2}Testing

Testing\spc{5}Testing

\bye

verwandte Informationen