我正在尝试使用该leaflet
包为文档创建传单。我已NavyBlue
为第 、 、 和 页1
指定2
了4
背景颜色。遗憾的是,默认文本颜色黑色在该背景上难以阅读。为了解决这个问题,我想使用白色。但是,我只能在 第、、和5
页上使用该颜色。它不会显示在其他白色页面上。如何在 LaTeX 中实现此目的?1
2
4
5
以下是示例文件:
\documentclass[letterpaper]{leaflet}
\usepackage[dvipsnames]{xcolor}
\usepackage{blindtext}
\title{Sample Document}
\author{Anonymous}
\date{\today}
\AddToBackground{1}{
\put(0,0){\textcolor{NavyBlue}{\rule{\paperwidth}{\paperheight}}}}
\AddToBackground{2}{
\put(0,0){\textcolor{NavyBlue}{\rule{\paperwidth}{\paperheight}}}}
\AddToBackground{4}{
\put(0,0){\textcolor{NavyBlue}{\rule{\paperwidth}{\paperheight}}}}
\AddToBackground{5}{
\put(0,0){\textcolor{NavyBlue}{\rule{\paperwidth}{\paperheight}}}}
\begin{document}
\maketitle
\Blinddocument
\end{document}
答案1
tcolorbox
包可以对破损框中的每个片段应用不同的选项。然后可以将传单中的所有文本包含在 tcolorbox 中breakable, blankest
(blankest
不会更改段落格式),并且由于每个片段都用特定编号标识,我们可以使用它来修复文本的颜色。
\documentclass[letterpaper]{leaflet}
\usepackage[dvipsnames]{xcolor}
\usepackage{blindtext}
\usepackage[most]{tcolorbox}
\title{Sample Document}
\author{Anonymous}
\date{\today}
\AddToBackground{1}{
\put(0,0){\textcolor{NavyBlue}{\rule{\paperwidth}{\paperheight}}}}
\AddToBackground{2}{
\put(0,0){\textcolor{NavyBlue}{\rule{\paperwidth}{\paperheight}}}}
\AddToBackground{4}{
\put(0,0){\textcolor{NavyBlue}{\rule{\paperwidth}{\paperheight}}}}
\AddToBackground{5}{
\put(0,0){\textcolor{NavyBlue}{\rule{\paperwidth}{\paperheight}}}}
\begin{document}
% White color for `title` is forced.
{\color{white}\maketitle}
% A breakable blankest colorbox with an `extras` option which is evaluated
% on each fragment identified by a `\thetcolorboxnumber`
\begin{tcolorbox}[breakable, blankest,
code={\newcommand{\mytextcolor}{%
\ifnum\thetcolorboxnumber=3 black%
\else\ifnum\thetcolorboxnumber=6 black%
\else white\fi\fi}},
extras = {colupper=\mytextcolor}
]
\Blinddocument
\end{tcolorbox}
\end{document}