Is there a way to define a function \horizontallengthof returning the length of a piece of text in internal units? I would like to be able to use it anywhere where something of that sort is required, for example like p{\horizontallengthof{this particular piece of text}} (in a table specification) or \hspace{\horizontallengthof{this particular piece of text}}.
I am hesitant to post a particular use case, since I am interested in a generic solution instead of workarounds for particular situations. But here is one (with calc's \widthof standing in for \horizontallengthof):
\documentclass{article}
\usepackage{fixltx2e}
\usepackage{calc}
\begin{document}
\begin{tabular}{p{0em}@{\hspace{1.0em}\quad}l@{\qquad}l}
\(\bullet\) & \(x = y\) & \(z = w\) \\
\(\bullet\) & \(a = b\) & \(c = d\) \\
\end{tabular}
\begin{tabular}{p{\widthof{\(\bullet\)}}@{\hspace{1.0em}\quad}l@{\qquad}l}
\(\bullet\) & \(x = y\) & \(z = w\) \\
\(\bullet\) & \(a = b\) & \(c = d\) \\
\end{tabular}
\begin{tabular}{p{\widthof{\(\bullet\)}}@{\hspace{1.0em-\widthof{\(\bullet\)}}\quad}l@{\qquad}l}
\(\bullet\) & \(x = y\) & \(z = w\) \\
\(\bullet\) & \(a = b\) & \(c = d\) \\
\end{tabular}
\end{document}
With the suggestion to add fixltx2e, this compiles properly, but I'd like the second table to have the same appearance (spacing-wise) as the first one, while giving me no Overfull \hbox warnings. Table 3 is a failed attempt at achieving this.
One reason why I didn't initially post this is that I didn't want any potential workarounds to this distract from a general (and imho needed) solution.

\usepackage{calc}and then\hspace{\widthof{text}}– egreg Feb 21 '13 at 11:08\documentclass{article} \usepackage{calc} \begin{document} a\hspace{\widthof{some text}}b \end{document}, I get a! Missing number, treated as zero.error. – Lover of Structure Feb 21 '13 at 11:25calc. :( However,\widthofcan be used in the argument of\parboxand forp-columns. – egreg Feb 21 '13 at 11:32\widthoffor something like\(\bullet\)? See my added minimal example. – Lover of Structure Feb 21 '13 at 11:43\usepackage{fixltx2e}and then\(is robust (or you could just use$which is robust anyway) – David Carlisle Feb 21 '13 at 11:52l. – David Carlisle Feb 21 '13 at 12:31\begin{tabular}{l@{\qquad}l@{\qquad}l} \rlap{\(\bullet\)} & \(x = y\) & \(z = w\) \ \rlap{\(\bullet\)} & \(a = b\) & \(c = d\) \\end{tabular}– egreg Feb 21 '13 at 12:34\Hspace, the following gives the desired result and no overfull\hboxes:\begin{tabular}{p{\widthof{\(\bullet\)}}@{\Hspace{1.0em-\widthof{\(\bullet\)}}\quad}l@{\qquad}l}. – Lover of Structure Feb 21 '13 at 12:35memoir's\begin{Spacing}{1} \noindent ... \end{Spacing}. I hope my motivation makes sense: this is really about emulating ordinaryitemize, whose vertical spacing I'm very unhappy with. – Lover of Structure Feb 21 '13 at 12:41calc? The documentation doesn't specify that it needs to be before or after certain other packages. – Lover of Structure Feb 21 '13 at 12:43memoirnecessitates$\bullet$instead of\(\bullet\), even withfixltx2e; I have no clue why. This might be something to pass on to those in charge (if you're not one of them). – Lover of Structure Feb 21 '13 at 12:56itemize) with horizontal alignment (see that there are two equations in each row). So that really did necessitate a tabular; I didn't want to fiddle with tabs anditemizeto get that result. I did in fact manage to create a\newenvironment{mytightlist}(with most parameters set to0pt), which addresses my vertical spacing preference. My previous comment about what motivated me was wrong. – Lover of Structure Feb 21 '13 at 12:59\hspace{1.0em}\quadin my example was to have it match up with earlier lists. (That's why I didn't first want to post this example, because it'd too confusing to explain, apparently it's confusing to myself ...) – Lover of Structure Feb 21 '13 at 13:10