
Ich verstehe, dass man die Hintergrundfarbe für einen Textabschnitt ganz einfach ändern kann, aber ich möchte dasselbe für einen ganzen Abschnitt der Seite tun. Wie ändert man die Hintergrundfarbe nur für einen Abschnitt der Seite?
Antwort1
\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}
Antwort2
Das folgende Beispiel verwendet diesen Ansatz:
Markieren oder speichern Sie die oberste und unterste Position des Bandes, das Sie hervorheben möchten, mit
zref
'ssavepos
Modul (über\zsaveposy{<label>}
);Einfügen von Inhalten in die
B
BestätigungsrundeG
der aktuellen Seite nur miteso-pic
'S\AddToShipoutPictureBG*
;Dieser Inhalt ist ein Rechteck, das auf basiert
\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}
Da das -System \zsaveposy
verwendet , müssen Sie bei jeder Änderung der vertikalen Position von und/oder mindestens zweimal kompilieren .\label
\ref
top
bottom
Sie können den Prozess in einer Umgebung automatisieren 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}
Antwort3
Wenn der farbige Hintergrund mit einem bestimmten Text in Zusammenhang steht, können Sie tcolorbox
hierfür ein verwenden.
\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}
Wenn es sich jedoch nur um einen Rahmen an einer beliebigen Position handelt, können Sie eso-pic
das Paket verwenden:
\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}
Antwort4
Sie können die Hintergrundfarbe einer Seite mit dem Befehl \pagecolor{Farbname} ändern. Der Code zum Ändern der Hintergrundfarbe ist unten angegeben:
\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}
Wenn Sie zur ursprünglichen Seitenfarbe zurückkehren möchten, fügen Sie einfach diesen Befehl hinzu
\pagecolor{white}