可変数のスペースを作成するコマンド

可変数のスペースを作成するコマンド

基本的に私の問題は、コマンドの引数を数値として扱いたい(そしてそれに対して算術演算を実行したい)のですが、それを文字列としてしか扱えないことです。特に、引数に応じて可変数のスペースを挿入するコマンドが欲しいです。私はこれを試しました

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

もちろんそれはうまくいかないが、

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

これも動作しません。どうすればいいでしょうか?

答え1

*を に変更しました\dimexpr。これにより、#1 cmは長さとして評価され、それからを掛け合わせた.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

関連情報