What are the differences between \newdimen, \newskip, and\newlength?

When should I use each of them? Please give me a non-trivial example for each case.

2 Answers 2


\newlength is the LaTeX2e version of \newskip. It has extra check to avoid redefinition or illegal name. In LaTeX2e, it is defined


For example,

\newlength\foo % OK
\newlength\foo % redefinition ERROR!

\newlength\endbar % ERROR: \endbar is illegal command name in LaTeX2e.
% It is reserved by LaTeX kernel to define bar environment together with \bar

\newskip only allocates a new skip (glue, or rubber space) register. If you use low-level TeX command \newskip instead, no error message will be shown.

You should always use \newlength rather than \newskip in LaTeX.

\newdimen is another low-level TeX macro that allocates a new dimension register, it is different with \newskip. They have different meaning. For example,

\rigidlength=2pt % or \setlength{\rigidlength}{2pt}

\newlength\rubberlength % you cannot use \newdimen here
\setlength{\rubberlength}{2pt plus 2pt minus 1pt}

\newlength is LaTeX syntax and always a skip register:

\foo=1cm plus 1mm minus 3mm
\bar=1cm %plus 1mm minus 3mm % not possible
\setlength\baz{1cm plus 1mm minus 3mm} 
\the\foo \par
\the\bar \par
  • When should I use \newdimen, \newlength and \newskip? Jul 12, 2011 at 12:41
  • 4
    @xport: For LaTeX high-level code use \newlength. Use \newdimen for lower-level code if you are sure that you only need a rigid dimension. \newskip also allows you to add stretch-amounts so the value can be a little higher or lower if required, which is useful for inter-word and inter-paragraph skips to fill the given size better. Jul 12, 2011 at 12:54
  • 2
    \newlength tests if the command (length) already exists, \newdimen and newskip overwrite an already existing definition
    – user2478
    Jul 12, 2011 at 12:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.