
Entiendo que se puede cambiar fácilmente el color de fondo de una parte del texto, pero me gustaría hacer lo mismo con una parte completa de la página. ¿Cómo se cambia el color de fondo solo para una sección de la página?
Respuesta1
\documentclass{article}
\pagestyle{empty} % Suppress page numbers
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\path (current page.north west)
node[
below right,
fill=blue!40,
minimum width=\paperwidth,
minimum height=3cm
]
(box){};
\path (current page.south west)
node[
above right,
fill=red!40,
minimum width=\paperwidth,
minimum height=3cm
]
(box1){};
\path ($(current page.west)+(1cm,0)$)
node[
%above right,
fill=black!40,
%minimum width=\paperwidth,
minimum height=1cm
]
(box2){};
\path ($(box2)+(1cm,0)$)
node[
%above right,
fill=green!40,
%minimum width=\paperwidth,
minimum height=1cm
]
(box3){};
%\path (box.west) node[right=5mm,align=left] %<distance can be changed to suit
%{{\fontsize{45pt}{65pt}\color{white}\textbf{JS Bibra}}\\[2mm]
%{\fontsize{30pt}{20pt}\color{cyan}Advisor to TEX}\\[2mm]
%{\fontsize{10pt}{10pt}\color{white}\LaTeX\ development}};
\end{tikzpicture}
\end{document}
Respuesta2
El siguiente ejemplo utiliza este enfoque:
Marque o guarde las posiciones superior e inferior de la banda que desea resaltar usando
zref
módulosavepos
(a través de\zsaveposy{<label>}
);Inserte contenido en la ronda
B
de confirmaciónG
de la página actual solo usandoeso-pic
's\AddToShipoutPictureBG*
;Ese contenido es un rectángulo basado en
\rule[<raise>]{<width>}{<height>}
.
\documentclass{article}
\usepackage{zref-savepos,eso-pic,xcolor}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\AddToShipoutPictureBG*{% Add the following in the background of the current page only
\AtPageLowerLeft{% Starting from the lower left corner of the page
\color{blue!30!white}% Colour content this colour
\rule% Insert a rule (technically a filled rectangle)...
[\dimexpr\zposy{bottom}sp-.3\baselineskip]% ...raised to the "bottom" marker
{\paperwidth}% ...stretching across the entire page
{\dimexpr\zposy{top}sp-\zposy{bottom}sp}% ...with height "top"-"bottom"
}%
}%
\zsaveposy{top}%
\lipsum*[2]%
\zsaveposy{bottom}%
\lipsum[3]
\end{document}
Dado que \zsaveposy
utiliza el sistema \label
- \ref
, tendrás que compilar al menos dos veces con cada cambio en la posición vertical de top
y/o bottom
.
Puede automatizar el proceso en un entorno colourband
:
\documentclass{article}
\usepackage{zref-savepos,eso-pic,xcolor}
\usepackage{lipsum}
%\usepackage{xparse}% Only if you're running LaTeX older than 2020-10
\newcounter{colourband}%
\NewDocumentEnvironment{colourband}{m}{%
\stepcounter{colourband}% New band
\leavevmode\zsaveposy{top-\thecolourband}% Start new paragraph and save y-position of top
\ignorespaces
}{%
\unskip
\zsaveposy{bottom-\thecolourband}% Save y-position of bottom
% Add colour band to BackGround of current page only
\edef\x{\noexpand\AddToShipoutPictureBG*{%
\noexpand\AtPageLowerLeft{% Starting from the lower left corner of the page
\noexpand\color{#1}% Colour content this colour
\noexpand\rule% Insert a rule (technically a filled rectangle)...
[\dimexpr\zposy{bottom-\thecolourband}sp-.3\baselineskip]% ...raised to the "bottom" marker
{\paperwidth}% ...stretching across the entire page
{\dimexpr\zposy{top-\thecolourband}sp-\zposy{bottom-\thecolourband}sp+\baselineskip}% ...with height "top"-"bottom"
}%
}}\x%
}
\begin{document}
\lipsum[1]
\begin{colourband}{blue!20!white}
\lipsum*[2]%
\end{colourband}%
\begin{colourband}{green!15!white}
\lipsum*[3]
\end{colourband}
\end{document}
Respuesta3
Si el fondo de color está relacionado con un texto en particular, puede utilizar a tcolorbox
para ello.
\documentclass[a4paper, 12pt]{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\newtcolorbox{colbackbox}[2][]{%
tile,
colback=#2,
size=minimal, left=\oddsidemargin+1in,right=\oddsidemargin+1in, spread sidewards,
parbox=false, before upper=\indent, after=\par, #1}
\begin{document}
\lipsum[1]
\begin{colbackbox}{red!30}
\lipsum[2]
\end{colbackbox}
\begin{colbackbox}[breakable]{blue!15}
\lipsum[3-6]
\end{colbackbox}
\end{document}
Pero si es solo un marco en cualquier posición, puedes usar eso-pic
el paquete:
\documentclass{report}
\usepackage{xcolor}
\usepackage{eso-pic}
\usepackage{lipsum}
\begin{document}
\AddToShipoutPictureBG{\AtPageLowerLeft{%
\put(0,50mm){%
\color{blue!20}\rule{\paperwidth}{.3\paperheight}}}}
\lipsum[1-15]
\end{document}
Respuesta4
Puede cambiar el color de fondo de una página usando el comando \pagecolor{nombre del color}. El código para cambiar el color de fondo se proporciona a continuación:
\documentclass[12pt]{article}
\usepackage{xcolor, soul}
\begin{document}
\fcolorbox{red}{white}{The text is the simple \LaTeX\ text}\\ \\
\pagecolor{lightgray}
\fcolorbox{blue}{cyan}{text is here}
\end{document}
Si desea volver al color de página original, simplemente agregue este comando
\pagecolor{white}