我希望能够围绕整个页面或选定的页面创建方框,方框延伸到页面的整个长度,但方框的底边位于页码上方,如附件示例中所示。如果可以将其定义为环境,以便该环境中的所有页面都被框起来,那就太理想了。此环境可用于将执行摘要与文档的其余部分区分开来。
如有任何提示或建议我将非常感激。
答案1
使用tikz
和eso-pic
。我定义了两个命令\addframe
和\removeframe
,分别用于在页面中添加框架和删除框架。
梅威瑟:
\documentclass{article}
\usepackage{tikzpagenodes}
\usetikzlibrary{calc}
\usepackage{eso-pic}
\newcommand{\addframe}{%
\AddToShipoutPicture{%
\begin{tikzpicture}[remember picture, overlay]
\draw[line width=1pt]
($(current page text area.north west) +(-5mm,5mm)$)
rectangle
($(current page text area.south east) +(5mm,-5mm)$);
\end{tikzpicture}%
}%
}
\newcommand{\removeframe}{\ClearShipoutPicture}
\usepackage{lipsum} % just for the example
\begin{document}
\addframe
\lipsum[1-10]
\clearpage
\removeframe
\lipsum[1-10]
\clearpage
\addframe
\lipsum[1-10]
\end{document}
输出:
您可以根据需要调整参数(1pt
厚度和5mm
与文本的距离)。
或者,您可以\addframe
这样定义
\newcommand{\addframe}{%
\begin{tikzpicture}[remember picture, overlay]
\draw[line width=1pt]
($(current page text area.north west) +(-5mm,5mm)$)
rectangle
($(current page text area.south east) +(5mm,-5mm)$);
\end{tikzpicture}%
}
\addframe
并在每个需要框架的页面中使用,如下面的 MWE:
\documentclass{article}
\usepackage{tikzpagenodes}
\usetikzlibrary{calc}
\newcommand{\addframe}{%
\begin{tikzpicture}[remember picture, overlay]
\draw[line width=1pt]
($(current page text area.north west) +(-5mm,5mm)$)
rectangle
($(current page text area.south east) +(5mm,-5mm)$);
\end{tikzpicture}%
}
\usepackage{lipsum} % just for the example
\begin{document}
\addframe
\lipsum[1-10]
\clearpage
\lipsum[1-10]
\clearpage
\addframe
\lipsum[1-10]
\end{document}
答案2
您可以使用包mdframed
来执行此操作。
mdframed
它非常可定制,您可以定义背景颜色和更多东西。
如果您希望框在任何地方都使用相同的样式,最佳做法是使用 定义一个新环境newmdenv
,设置一些样式选项。在这种情况下,使用标准,框周围有一个框架。您可以稍后通过为环境提供选项来本地推翻设置,如第二个示例所示。
\documentclass{article}
\usepackage{mdframed}
\newmdenv{boxed}
\usepackage{blindtext}
\begin{document}
\blindtext
\begin{boxed}
\blindtext
\blindtext
\begin{description}
\item [something] \blindtext
\item [something else] \blindtext[2]
\end{description}
\end{boxed}
\blindtext
\begin{boxed}[backgroundcolor=yellow]
\blindtext
\end{boxed}
\end{document}