我希望能夠圍繞整個頁面或選擇的頁面建立框,其中框延伸到頁面的整個長度,但框的底部邊緣位於頁碼上方,如所附範例所示。如果可以將其定義為一個環境,以便該環境中的所有頁面都被裝箱,那就太理想了。此環境可用於將執行摘要與文件的其餘部分分開。
任何提示或建議將不勝感激。
答案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}