Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

The following example has the setting:

\splittopskip=.3cm

However in the output I can't see any vertical space. It seems that \vsplit starts the computing of the height at the baseline. How can I change it so that the highest point of the first line will be uses as reference point?

\documentclass{article}
\parindent0pt
\def\exampletext{Text Text Text Text Text Text Text Text Text Text Text Text 
Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text 
Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text }
\fboxsep=0pt
\fboxrule=1pt

\newbox\boxi
\newbox\boxii
\begin{document}
\begingroup
\setbox\boxi=\vbox%
 {%
    \hsize=8cm\sloppy
    \bfseries\huge\exampletext
 }

\splitmaxdepth0pt \splittopskip=.3cm
\setbox\boxii\vsplit\boxi to2cm
\setbox\boxii=\vbox{\unvbox\boxii}

BOX \verb+\boxii+\hfill\fbox{\box\boxii}

\setbox\boxi=\vbox{\unvbox\boxi}

BOX \verb+\boxi+\hfill\fbox{\box\boxi}
\endgroup
\end{document}
share|improve this question
add comment

2 Answers 2

up vote 9 down vote accepted

Between lines of a paragraph \baselineskip defines the distance from one baseline to the next and depending on the depth of the previous line and the height of the next line space is added to get the exact value

\topskip or \splittopskip does the same for the first line of a paragraph execpt that it will not add any negative space, i.e., if the height of the first line is higher than its value. This will bring the baseline of the first line in a box on a predefined position unless this line is very tall. This functionality is important because in typography you often want to align on baselines and after \vsplit there is no easy way to determine the height of the first line inside.

In summary: the space added by \splittopskip always depends on that first line inside, so all you can do is to disable it (by setting it to zero) and then add your space afterwards

share|improve this answer
    
Thanks for the explanation. –  Marco Daniel May 25 '12 at 10:51
add comment

If you always want the skip at the top of the box do

\splittopskip=0pt
\setbox\boxii\vsplit\boxi to2cm
\setbox\boxi=\vbox{\vskip.3cm\unvbox\boxi}
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.