使用 \fcolorbox 和 \fancypage 时第一页无边框

使用 \fcolorbox 和 \fancypage 时第一页无边框

我在(from ) 中使用\fcolorbox( from ) 来获得彩色页面边框。不幸的是,第一页没有显示边框,即使框本身已绘制。我怎样才能让这个 MWE 工作(即在第一页显示红色边框)?xcolor\fancypagefancybox

\documentclass{article}
\usepackage{fancybox, xcolor, lipsum}

\fancypage{}{\fcolorbox{red}{yellow}}

\begin{document}
\lipsum[1-25]
\end{document}

请注意,使用\fancypage{}{\fbox}会按预期在第一页上显示边框。

答案1

这是使用 Ti 的替代方案Z 和everypage包。这个想法基于background包中的代码。tikzpagenodes用于轻松访问与页面各个部分相对应的坐标。

一个优点是,如果您愿意,您可以创建更加精美的框架和背景。

此示例绘制了一个背景,其中包括文本块、页眉和页脚(但不包括边注),另一个背景覆盖在背景上,其中只包括文本块。我使用阴影只是为了说明更简单的可能性。

蓝色花哨的背景

\documentclass{article}
\usepackage{geometry}
\usepackage{everypage}
\usepackage{xcolor}
\usepackage{tikzpagenodes}
\usetikzlibrary{fit}
\usepackage{lipsum}
\AddEverypageHook{%
  \tikz[overlay, remember picture]{% based on background.sty
    \node [top color=blue!50!cyan, bottom color=blue!50!cyan, middle color=blue!25!cyan, draw=blue!75!cyan, line width=3.5pt, inner ysep=15pt, inner xsep=25pt, fit=(current page footer area.south west) (current page header area.north east)] {};
    \node [top color=blue!25!cyan, bottom color=blue!25!cyan, middle color=white, draw=blue!50!cyan, line width=2.5pt, inner sep=5pt, fit=(current page text area.south west) (current page text area.north east)] {};
  }%
}
\begin{document}
\lipsum[1-25]
\end{document}

答案2

该库tcolorbox软件包breakable允许您制作允许分页的彩色框和框架,以及许多其他有据可查的选项。

姆韦

\documentclass{article}
\usepackage[margin=1.5cm,paperheight=9cm,]{geometry}
\usepackage{lipsum}
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\tcbset{breakable}
\begin{document}
\begin{tcolorbox}[
colback=blue!20!, colframe=red!75!black,
boxsep=3mm,arc=0mm,boxrule=2pt]
\lipsum[1-50] % long bla bla bla
\end{tcolorbox}
\end{document}

编辑:我想要在框里面的页眉/页脚,一个解决方案可能是tcolobox使用以下background包牢不可破的:

mwe2

\documentclass{article}
\usepackage{tcolorbox,lipsum}
\usepackage{background}
\backgroundsetup{contents={
\begin{tcolorbox}[colback=blue!10!, 
colframe=red!75!black, boxsep=3mm,
arc=0mm,boxrule=2pt]% 
\vspace{\textheight} 
\end{tcolorbox}
},angle=0,scale=1.2}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\rhead{\LaTeX\ examples}
\lhead{Background boxes}
\rfoot{Page \thepage}
\begin{document}
\lipsum[1-25]
\end{document}

答案3

编辑:我的第一个答案是模拟\fancypage{\fcolorbox{red}{yellow}}{}。请参阅下面的解决方案。但是,问题是关于的\fancypage{}{\fcolorbox{red}{yellow}}。所以首先这是我的解决方案。

1. 解决方案\fancypage{}{\fcolorbox{red}{yellow}}

这是一个轻量级的解决方案(不需要额外的包):

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}

%\fancypage{}{\fcolorbox{red}{yellow}}
\newcommand{\xcoord}{1in+\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi-\fboxrule-\fboxsep}
\newcommand{\ycoord}{-1in-\voffset-\textheight-\topmargin-\headheight-\headsep-\footskip-\fboxsep}
\newlength\boxheight
\setlength\boxheight{\dimexpr\textheight+\footskip+\headheight+\headsep+\fboxsep}
\AddToHook{shipout/background}{%
  \put(\xcoord,\ycoord){%
    \fcolorbox{red}{yellow}{\vbox to \boxheight{\hspace{\textwidth}}}
  }%
}%

\begin{document}
\lipsum[1-25]
\end{document}

如果您有较旧的 LaTeX 不支持钩子shipout/background,则可以使用该everypage包进行模拟:

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{everypage}

%\fancypage{}{\fcolorbox{red}{yellow}}
\newcommand{\xcoord}{\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi-\fboxrule-\fboxsep}
\newcommand{\ycoord}{-\voffset-\textheight-\topmargin-\headheight-\headsep-\footskip-\fboxsep}
\newlength\boxheight
\setlength\boxheight{\dimexpr\textheight+\footskip+\headheight+\headsep+\fboxsep}
\AddEverypageHook{%
  \put(\xcoord,\ycoord){%
    \fcolorbox{red}{yellow}{\vbox to \boxheight{\hspace{\textwidth}}}
  }%
}%

\begin{document}
\lipsum[1-25]
\end{document}

2. 解决方案\fancypage{\fcolorbox{red}{yellow}}{}

这是一个轻量级的解决方案(不需要额外的包):

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}

%\fancypage{\fcolorbox{red}{yellow}}{}
\newcommand{\xcoord}{1in+\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi-\fboxrule-\fboxsep}
\newcommand{\ycoord}{-1in-\voffset-\textheight-\topmargin-\headheight-\headsep-\fboxsep}
\AddToHook{shipout/background}{%
  \put(\xcoord,\ycoord){%
    \fcolorbox{red}{yellow}{\vbox to \textheight{\hspace{\textwidth}}}
  }%
}%

\begin{document}
\lipsum[1-25]
\end{document}

如果您有较旧的 LaTeX 不支持钩子shipout/background,则可以使用该everypage包进行模拟:

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{everypage}

%\fancypage{\fcolorbox{red}{yellow}}{}
\newcommand{\xcoord}{\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi-\fboxrule-\fboxsep}
\newcommand{\ycoord}{-\voffset-\textheight-\topmargin-\headheight-\headsep-\fboxsep}
\AddEverypageHook{%
  \put(\xcoord,\ycoord){%
    \fcolorbox{red}{yellow}{\vbox to \textheight{\hspace{\textwidth}}}
  }%
}%

\begin{document}
\lipsum[1-25]
\end{document}

相关内容