\hsize is the main parameter that TeX uses when typesetting: whenever it finishes a paragraph it looks at the current value of
\hsize for breaking it into horizontal boxes. Next, there are
\rightskip and possibly other paragraph shape parameters (
\hangafter or the more general
LaTeX uses an indirect approach and maintains many
\textwidth is generally the global width of the text area, while
\columnwidth is the width of a column of text (it will be different from
\textwidth when typesetting in two or more columns). However, inside a
\textwidth will be set to the given argument along with
\linewidth (they will revert to the previous values at the end of the
\parbox that form a group).
\linewidth contains the line length inside a
list (or derived) environment and it may change in a nested list (while
\columnwidth don't change).
When we have to specify a length depending on current conditions, we have to use the correct parameter. For example, the width of a figure should be specified in terms of
\columnwidth in a
figure environment and of
\textwidth in a
figure* environment; however this is done rarely when it's known that the document will be typeset in one column format. The same should be for a
Instead, when we need something centered with respect to a line in a
list, we should use
\item some text that contains a `here' table
and some other text that follows.
In this case it would be wrong to use
\columnwidth, as the line length is "unknown" at typing time.
Notice that LaTeX uses
\hangindent only for typesetting sectional titles and
\raggedleft; the indentation of a
list environment is obtained via