I have text where I want to adjust the space above the first line. I want to overlay grid lines to show where the vertical position of the text is.
The MWE below with the following line commented is the standard output. The red horizontal lines are integer multiples of \baselineskip from the top.
%\def\IncludeDesiredTopSkip{}
However, if I uncomment this line (which applies the \DesiredTopSkip, which is set to 0pt here), I obtain the following:
\def\IncludeDesiredTopSkip{}
Note that the baseline now is exactly on the line.
Question:
What am I missing that would explain this discrepancy in the two cases and how do I get both cases to properly display the baseline?
Note:
- In case anyone is curious as to why I want to do this: These lines are then used to compute the
\parshapeparameters based on where these lines intersect the particular shape.
References:
Code:
%\def\IncludeDesiredTopSkip{}
\documentclass{article}
\usepackage{showframe}
\usepackage{tikz}
\usepackage[paperwidth=7.0cm]{geometry}
\newcommand*{\DesiredTopSkip}{0pt}
\newcommand*{\ShowTextGuideLines}[1]{%
\begin{tikzpicture}[remember picture, overlay]
\coordinate (X) at ([
xshift=1.0in+\hoffset+\oddsidemargin,
yshift=-1.0in-\voffset-\topmargin-\headheight-\headsep%
]current page.north west);
\node [draw=red, fill=yellow] at (X) {X};%% DEBUGGING: Ensure (X) is the correct spot.
\foreach \X in {1, ..., #1} {%
\draw [thin, red] ([yshift=-\X\baselineskip-\DesiredTopSkip]X) -- ++ (\hsize,0);
}%
\end{tikzpicture}%
}%
\begin{document}
\ifdefined\IncludeDesiredTopSkip
%% See comments in https://tex.stackexchange.com/q/7676/4301
\hbox{}\kern-\topskip%
\vspace*{\DesiredTopSkip}%
\fi
First line. abcdefghij
\par
Second line. abcdefghij
\ShowTextGuideLines{3}
\end{document}



\kern-\topskipwas eliminating that as suggested at Why does \vspace*{0pt} add vertical space?. But of course, having that within the\ifdefinedwas the problem!! Thanks. – Peter Grill Nov 21 '18 at 16:38