Get width of a given text as length
Use the calc
package (\usepackage{calc}
):
\parbox{\widthof{my text}}{...}
I like to answer the question in a more general way, so that it is useful to a wider group of people.
There are the following macros which allow to store the width, height (the material above the baseline) and depth (the material below the baseline) of a given content.
\settowidth{\somelength}{<content>}
\settodepth{\somelength}{<content>}
\settoheight{\somelength}{<content>}
The calc
package also provides one for the total height (height + depth):
\settototalheight{\somelength}{<content>}
as well as
\widthof{<content>}
\heightof{<content>}
\depthof{<content>}
\totalheightof{<content>}
which can be used directly inside \setlength
or \addtolength
.
If you need multiple dimension of the same content you can also store it in a box register and use its dimension directly (the above macros do this as well internally). These are dimension expressions and can be prefixed with a factor, e.g. .5\wd\mybox
is half the width.
\newsavebox\mybox
\sbox{\mybox}{<content>}
\wd\mybox % width
\ht\mybox % height
\dp\mybox % depth
For the totalheight you need to add \ht\mybox
and \dp\mybox
together.
This can be done without the calc
package
\documentclass{article}
\begin{document}
\newlength{\myl}
\settowidth{\myl}{test text}
\the\myl
\end{document}
\the\myl
will print out the value ~37pt.