I would like to have a macro which produces N white spaces if called like this

\mulspc{3} % Produces exactly 3 spaces

    \whiledo {\value{ctra} < #1}%

But I have problems that this macro does not produce 0mm spacing in a table cell (just at the beginning of the cell!) if I call zero times \multspc{0}. There is always some indent, but where does this come from?

I need this macro to indent some algorithm in the table cell, its nasty but manualy formating gives me the best result in a longtable, because its multiple pages long...

Thanks for your help!

3 Answers 3


No need for using a loop:


  • ...now that's clean! Nice!
    – Werner
    Aug 10, 2011 at 19:26

The problem with the current macro is that it unwanted whitespace is added from due to indentation. Add some % add the line ends to get rid of these. However, the current definition also produces a warning after you use \mulspc more than once. That is because the counter definition \newcounter{ctra} is contained within the \newcommand{\mulspc}. Rather define the counter outside the macro definition. Another drawback is that the space offered by \mulspc{0} should be non-existent, which it is not, even if you add % to remove the unwanted spaces. For example, the code:

    \whiledo {\value{ctra} < #1}%

\fbox{\mulspc{0}}% Zero spaces

\fbox{}% Empty \fbox

\fbox{\mulspc{1}} % One space

\fbox{\mulspc{3}} % Produces exactly 3 spaces



Unwanted spacing in \mulspc

To get rid of this spacing, you could use a condition on the parameter passed to \mulspc:

    \whiledo {\value{ctra} < #1}%

providing \unskip if there is a parameter passed with value less than 1. This produces:

Unwanted spaces gone from \mulspc

Another alternative would be to use the easy interface of the multido package, and define (say)

\usepackage{multido}% A loop facility for Generic TeX

that you can use in a similar way, and is a little cleaner code-wise.

  • 1
    That is not because of indentation. Even if you start every line from the first column, a space is still added because of the newline. Aug 10, 2011 at 20:43

eTeX is always available nowadays, thus you can simply use


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .