Using Tikz :
\newcommand{\cancel}[1]{%
\tikz[baseline=(tocancel.base)]{
\node[inner sep=0pt,outer sep=0pt] (tocancel) {#1};
\draw[red] (tocancel.south west) -- (tocancel.north east);
}%
}%
This is a \cancel{test}
Another possibility with Tikz is to use the strike out shape:
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{shapes.misc}
\begin{document}
Strike \tikz[baseline] \node [strike out,draw=red,anchor=text] {me}; out!
\end{document}
Using pstricks, in the pstricks-add package :
%in preamble
\usepackage{pstricks,pstricks-add}
%in document
%example taken from pstricks-add documentation
\psCancel[linecolor=red]{Tikz :-)}
Edit 1 : I just realized that the \psCancel macro draws the mark before the text to cancel, same as for the cancel package. If you want the mark above the text, I guess you should use Tikz.
Edit 2 : Incorporated suggestions about baseline into the Tikz code
\llapis the easiest way so far. I had a look at the docs, a hack is not easy. Suggestion cancel the word "suboptimal" in you question:) Certainly TikZ is not the answer for this. – yannisl Apr 16 '11 at 17:13