For a book cover, I want to write the title vertically (like in Japanese, but using English text):
T
T I
H T
I I M L
S S Y E
How do I do this without jumping through a host of \vbox and \hboxes?
For a book cover, I want to write the title vertically (like in Japanese, but using English text):
T
T I
H T
I I M L
S S Y E
How do I do this without jumping through a host of \vbox and \hboxes?

\documentclass{article}
\makeatletter
\protected\def\vvv#1{\leavevmode\bgroup\vbox\bgroup\xvvv#1\relax}
\def\xvvv{\afterassignment\xxvvv\let\tmp= }
\def\xxvvv{%
\ifx\tmp\@sptoken\egroup\ \vbox\bgroup\let\next\xvvv
\else\ifx\tmp\relax\egroup\egroup\let\next\relax
\else
%\hbox{\tmp}%original
\hbox to 1.1em{\hfill\tmp\hfill}% centred
\let\next\xvvv\fi\fi
\next}
\makeatother
\begin{document}
\vvv{This is my title}
\end{document}
Split the title at spaces, then each word at letters and build a tabular for each word. Then print all the tabulars so obtained:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{xparse}
\ExplSyntaxOn
% variables
\seq_new:N \l_verttext_words_seq
\seq_new:N \l_verttext_singleword_seq
\seq_new:N \l_verttext_final_seq
% user level command
\NewDocumentCommand{\verticaltitle}{m}
{
{\huge\verttext_title:n { #1 }\par}
}
% Inner function
\cs_new_protected:Npn \verttext_title:n #1
{
% clear the sequence holding the final result
\seq_clear:N \l_verttext_final_seq
% split the title at spaces
\seq_set_split:Nnn \l_verttext_words_seq { ~ } { #1 }
% from each word build a tabular
\seq_map_inline:Nn \l_verttext_words_seq
{
% split the word into letters
\seq_set_split:Nnn \l_verttext_singleword_seq { } { ##1 }
% build the tabular for the single word
\seq_put_right:Nx \l_verttext_final_seq
{
\exp_not:n { \begin{tabular}[b]{@{}c@{}} }
\seq_use:Nnnn \l_verttext_singleword_seq { \\ } { \\ } { \\ }
\exp_not:n { \end{tabular} }
}
}
% output the tabulars separated by a \qquad
\seq_use:Nnnn \l_verttext_final_seq { \qquad } { \qquad } { \qquad }
}
\ExplSyntaxOff
\begin{document}
\verticaltitle{THIS IS MY TITL{É}}
\end{document}
Note that special letter must be braced; not a big deal with a title. You may want to increase \arraystretch in case accented letters are used.

\documentclass{article}
\usepackage{stackengine}
\begin{document}
\Longstack{T H I S}
\Longstack{I S}
\Longstack{M Y}
\Longstack{T I T L E}
~~or~~
\Longstack{T H I S {}}
\Longstack{I S {} {} {}}
\Longstack{M Y {} {} {}}
\Longstack{T I T L E}
\end{document}

stackengine at http://ctan.org/pkg/stackengine . It will work if you place the .sty file in your working directory. However, you should find out where your local LaTeX installation directory is on your machine, so that you can properly install it.
– Steven B. Segletes
Sep 26 '14 at 10:48
\egroupin the code (otherwise you get a warning about an unclosed group) – David Carlisle Jul 04 '13 at 16:51\title{\vvv{This is my title}} \maketitleworks for me, but in practice the standard title layout is not designed for this so you'd want to usetitlepagenot\maketitleand position it by hand. – David Carlisle Jul 04 '13 at 17:03\egroupis not needed, if you remove the extra\bgroupafter\leavevmode. – Heiko Oberdiek Jul 19 '13 at 23:56tufte-book, if you define the macro as protected macro:\protected\def\vvv#1{...}– Heiko Oberdiek Jul 19 '13 at 23:56\protected(by the way you can edit my answers any time:-) I left in the bgroup-egroup as I recall having a plan for them at the time, although they are not really doing much here. – David Carlisle Jul 20 '13 at 00:05\hbox to 1.1em{\hfill\tmp\hfill}instead of\hbox{\tmp}. – Heiko Oberdiek Jul 20 '13 at 00:08