# Apply \intextsep at top of page

In trying to provide an answer to this question: Two column trouble - positioning of figures and text, I realized that I need to shift the wrapfigure up to account for the extra spacing that the \colorbox was adding. I adjusted the \intextsep length, which works fine, except at the top of a page. Note that the black box is not lined up with the top of the horizontal line, but the blue one is.

I found many hackish solutions which "fix" this problem (but add a small amount of blank space at the top of the page), including: \smash{}, \llap{}, \rlap{}, \hphantom{}, \vphantom{}, \ which all get TeX to know that we are not at the top of a page so that \intextsep gets applied.

Questions:

1. What is the proper way to fix this spacing?
2. How would I go about adding a zero height, zero width box at the top so that no space is added and that \intextsep gets applied, but makes TeX behave as if it is not at the top of page? Of course, an alternate solution to #1 may not require this, but am still interested in knowing.

Here is the code:



Replay

try it this way:

\newcommand*\WarningHead[1]{%
\colorbox{black}{\parbox{\linewidth}{\color{white}\textbf{#1}}}\vspace{10px}%
}

\newcommand*\WrapFigure[1]{\leavevmode%
\setlength\intextsep{-3pt}%
\begin{wrapfigure}{r}[0pt]{0.3\linewidth}%
\raggedleft% right align the figures
\includegraphics[width=0.95\linewidth]{#1}%
\end{wrapfigure}
}%



to prevent the additional vertical space you can do

\newcommand*\WrapFigure[1]{%
\ifhmode\else\leavevmode\vspace*{-\normalbaselineskip}\fi%
\setlength\intextsep{-3pt}%



Just insert an instruction such as \phantom{a} right after \begin{document}. I wouldn't call it "hackish" at all. :-)

Category: spacing Time: 2011-11-08 Views: 1