The new text effects along path decoration in the CVS version of PGF can almost do this, although some tweaking is required. This decoration can parametrize the "effects" that are applied to the text (e.g., for scaling or coloring) according to the number of the character in the text. Text grouped inside braces is regarded as a single character:
\documentclass[border=0.125cm]{standalone} \usepackage{tikz} \usetikzlibrary{decorations.text,math} \begin{document} \def\themousestail{% {Fury said to} {a mouse, That} {he met} {in the} {house,} {`Let us} {both go} {to law:} {I will} {prosecute} {YOU. ---} {Come, I'll} {take no} {denial;} {We must} {have a} {trial:} {For} {really} {this} {morning} {I've} {nothing} {to do.'} {Said the} {mouse to} {the cur,} {`Such a} {trial,} {dear sir,} {With no} {jury or} {judge,} {would be} {wasting} {our breath.'} {`I'll be} {judge,} {I'll be} {jury,'} {Said} {cunning} {old Fury;} {`I'll try} {the whole} {cause,} {and} {condemn} {you} {to} {death.'} } % The `text effects along path` decoration puts each % character (or characters within braces) % in the text into a TikZ node. \tikz\draw [decoration={text effects along path, text/.expanded=\themousestail, text effects/.cd, % parametrize the number of the characters. character count=\i, character total=\n, % These are the "effects" (node options) used for calculating the width % of the bounding box of the character node % (i.e., how far to move along the decorated path). character widths={rotate=90, scale=1-\i/\n*0.5, execute at begin node=\strut, inner ysep=-0.76ex},% Ugh, -0.76ex by trial and error. % `text along path' makes the characters slope with the path characters={anchor=base west, scale=1-\i/\n*0.5}}, decorate] (0,0) .. controls ++(1,-1.5) and ++(1,2) .. (0,-5) .. controls ++(-1,-2) and ++(1,1.75) .. (0,-10) .. controls ++(-1,-1.75) and ++(0,1) .. (0,-14); \tikz\draw [decoration={text effects along path, text/.expanded=\themousestail, text effects/.cd, character count=\i, character total=\n, character widths={rotate=90, scale=1-\i/\n*0.5, execute at begin node=\strut, inner ysep=-0.76ex},% Ugh, -0.76ex by trial and error. % `text along path' makes characters slope with the path. characters={text along path, rotate=90, anchor=base west, scale=1-\i/\n*0.5}}, decorate] (0,0) .. controls ++(1,-1.5) and ++(1,2) .. (0,-5) .. controls ++(-1,-2) and ++(1,1.75) .. (0,-10) .. controls ++(-1,-1.75) and ++(0,1) .. (0,-14); \tikz\draw [decoration={text effects along path, text/.expanded=\themousestail, text effects/.cd, character count=\i, character total=\n, character widths={rotate=90, scale=1-\i/\n*0.5, execute at begin node=\strut, inner ysep=-0.76ex},% Ugh, -0.76ex by trial and error. characters={anchor=base west, scale=1-\i/\n*0.5, evaluate={\c=\i/\n*100;}, text=red!\c!blue}}, decorate] (0,0) .. controls ++(1,-1.5) and ++(1,2) .. (0,-5) .. controls ++(-1,-2) and ++(1,1.75) .. (0,-10) .. controls ++(-1,-1.75) and ++(0,1) .. (0,-14); \end{document} \end{document}

Note, care must be taken with how the path is constructed. If the path isn't smooth some of the rotated lines will look a bit wrong:
\documentclass[border=0.125cm]{standalone} \usepackage{tikz} \usetikzlibrary{decorations.text} \begin{document} \def\themousestail{% {Fury said to} {a mouse, That} {he met} {in the} {house,} {``Let us} {both go} {to law:} {I will} {prosecute} {YOU. --- Come,} {I'll take no} {denial; We} {must have a} {trial: For} {really this} {morning I've} {nothing} {to do.''} {Said the} {mouse to the} {cur, ``Such} {a trial,} {dear Sir,} {With} {no jury} {or judge,} {would be} {wasting} {our} {breath.''} {``I'll be} {judge, I'll} {be jury,''} {Said} {cunning} {old Fury:} {``I'll} {try the} {whole} {cause,} {and} {condemn} {you} {to} {death.''}} % The `text effects along path` decoration puts each % character (or characters within braces) % in the text into a TikZ node. \tikz\draw [decoration={text effects along path, text/.expanded=\themousestail, text effects/.cd, % These are the node options used for calculating the width of each character % (i.e., how far to move along the decorated path). character widths={rotate=90, execute at begin node=\strut, inner ysep=-0.875ex}, % These are the node options applied to each character. characters={anchor=base west}}, decorate] (0,0) arc (50:0:3 and 3) arc (0:-40:2 and 3) arc (130:180:2 and 3) arc (180:230:2 and 3) arc (50:-50:2 and 3); \tikz\draw [decoration={text effects along path, text/.expanded=\themousestail, text effects/.cd, character widths={rotate=90, execute at begin node=\strut, inner ysep=-0.875ex}, % `text along path' makes the characters slope with the path characters={text along path, rotate=90, anchor=base west}}, decorate] (0,0) arc (50:0:3 and 3) arc (0:-40:2 and 3) arc (130:180:2 and 3) arc (180:230:2 and 3) arc (50:-50:2 and 3); \end{document}
