Я хотел бы иметь возможность создавать блоки вокруг целой страницы или выборки страниц с блоком, простирающимся на всю длину страницы, но с нижним краем блока над номером страницы, как в приложенном примере. Было бы идеально, если бы это можно было определить как среду, чтобы все страницы в этой среде были заключены в рамку. Эту среду можно использовать для отделения резюме от остальной части документа.
Любые подсказки и предложения будут высоко оценены.
решение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}