我有需要调整间距的文本多于第一行。我想叠加网格线来显示文本的垂直位置。
下面的 MWE 注释了以下行,是标准输出。红色水平线是\baselineskip
从顶部开始的整数倍。
%\def\IncludeDesiredTopSkip{}
但是,如果我取消注释此行(应用\DesiredTopSkip
设置为0pt
此处的),我会得到以下结果:
\def\IncludeDesiredTopSkip{}
请注意,基线现在正好位于该线上。
问题:
我遗漏了什么来解释这两种情况下的差异,我该如何得到两个都情况下是否能正确显示基线?
笔记:
- 如果有人好奇我为什么要这样做:然后使用这些线
\parshape
根据这些线与特定形状的相交位置来计算参数。
参考:
代码:
%\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}
答案1
这个答案并没有真正回答你明确提出的问题,但我认为它确实完成了你想要做的事情。
该lineno
包会生成行号并将其放在页边距中。我滥用了这个包,告诉它打印红色水平线而不是数字,这样就得到了想要的效果。
\documentclass{article}
\usepackage{lineno} %% <- package for numbering lines
%\linenumbers %% <- turns on line "numbering" globally
\usepackage{xcolor} %% <- colour support
\newcommand*{\redline}{\color{red}\rule[-.4pt]{\textwidth}{.4pt}}
%% ^^ the optional argument puts the rule just /below/ the baseline.
%% ^^ to centre it on the baseline, change it to -.2pt.
%% ^^ remove the optional argument to place it on top of the baseline
\setmakelinenumbers\redline %% <- draw a horizontal rule instead of numbers
\usepackage{blindtext} %% <- for \blindtext
\begin{document}
\blindtext[1]
\linenumbers
\blindtext[1]
\nolinenumbers
\blindtext[1]
\end{document}
请注意,如果您喜欢这种语法,\linenumbers ... \nolinenumbers
您也可以使用。\begin{linenumbers}...\end{linenumbers}