Rather than try to do this exclusively with tabto
, one could bring in a \parbox
. Then you just need to know the widths involved to define the width of the \parbox
.
However, this tabto
method will not break items across page boundaries.
It would be preferable to dispense with the tabto
and use enumitem
to achieve the same thing, because it will break across page boundaries.
In the MWE below, I use the tabto
method on item "One" and the enumitem
method on item "Two".
\documentclass[a4paper, 12pt, twosides, openany, liststotoc]{scrbook}
\usepackage{tabto,enumitem}
\usepackage{lipsum}
\newcommand*{\mytab}[1]{\tabto{4.5cm}\parbox[t]{%
\dimexpr\textwidth-4.5cm-\labelwidth-\labelsep}{#1}}
\begin{document}
\begin{itemize}
\item One \mytab{The \texttt{tabto} way that will not
break across page boundaries. \lipsum[4]}
\item Two
\vspace{\dimexpr-\baselineskip-\parskip}
\begin{itemize}[label=,leftmargin=4.5cm,topsep=0pt]
\item The \texttt{enumitem} way that will break across
page boundaries. \lipsum[4-7]
\end{itemize}
\end{itemize}
\lipsum[3]
\end{document}