![将框架文本置于页面顶部](https://linux22.com/image/258490/%E5%B0%86%E6%A1%86%E6%9E%B6%E6%96%87%E6%9C%AC%E7%BD%AE%E4%BA%8E%E9%A1%B5%E9%9D%A2%E9%A1%B6%E9%83%A8.png)
我有章节(使用标准“报告”类),我想在章节第一页的顶部放置一个文本框架 - 它提供章节的简洁元细节。
到目前为止我成功做到的是:
我的问题是,我设法做事的唯一方法是使用 TikZ 绝对定位(我了解各种包,例如 textpos,但我无法让它们令人满意地工作)。
解决方案的不足之处在于,我无法精确控制框架的位置 - 或者更确切地说,我必须指定也精确地显示它应该在的位置(使用绝对坐标),而我只是希望它确切地与文本主体垂直对齐,并且只需给出距顶部的绝对距离。
例如:
\myboxedtext{1cm}{Text}
在距离顶部 1 厘米处放置一个与文本正文宽度相同的带框架的文本框,并与文本正文对齐。
我该怎么做?我尝试过将 raisebox 与 pagetotal 结合使用,但无济于事……
编辑:并且我想避免使用 TikZ(或任何需要多次编译的不稳定解决方案)。
答案1
tikz
您可以通过在当前页面北放置一个节点anchor=north
并通过参数指定来轻松实现您想要的效果yshift
,控制页面上边框和节点上边框之间的垂直分离:
\documentclass[openany]{report}
\usepackage{tikz}
\usepackage{lipsum}
\newcommand\ChapterPrecis[2]{%
\begin{tikzpicture}[remember picture,overlay]
\node[anchor=north,draw,yshift=-#1] at (current page.north) {\parbox[t][3cm][c]{\linewidth}{#2}};
\end{tikzpicture}%
}
\begin{document}
\chapter{Test Chapter One}
\ChapterPrecis{1cm}{\lipsum[2]}
\lipsum[1-3]
\chapter{Test Chapter Two}
\ChapterPrecis{2cm}{\lipsum[2]}
\lipsum[1-3]
\end{document}