ページの一部分だけ背景色を変更しますか?

ページの一部分だけ背景色を変更しますか?

テキスト部分の背景色は簡単に変更できることは理解していますが、ページ全体に対しても同じことを実行したいと思います。ページの一部分だけの背景色を変更するにはどうすればよいですか?

答え1

ここに画像の説明を入力してください

\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}

答え2

次の例ではこのアプローチを使用しています。

  • 強調表示したいバンドの上限と下限の位置をマークまたは保存します。zrefsaveposモジュール(経由\zsaveposy{<label>});

  • 現在のページのBackラウンドにのみコンテンツを挿入しますGeso-pic\AddToShipoutPictureBG*;

  • そのコンテンツは に基づく長方形です\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}

は-システム\zsaveposyを使用しているため、および/または の垂直位置が変更されるたびに、少なくとも 2 回コンパイルする必要があります。\label\reftopbottom


プロセスを環境に自動化できます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}

答え3

色付きの背景が特定のテキストに関連している場合は、 を使用できますtcolorbox

\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}

ここに画像の説明を入力してください

ただし、任意の位置のフレームだけの場合は、eso-picパッケージを使用できます。

\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}

ここに画像の説明を入力してください

答え4

\pagecolor{color name} コマンドを使用してページの背景色を変更できます。背景色を変更するコードを以下に示します。

\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}  

元のページカラーに戻したい場合は、このコマンドを追加するだけです

\pagecolor{white}

ページの色が変更されました

関連情報