Ändern Sie die Hintergrundfarbe in verschiedenen Umgebungen

Ändern Sie die Hintergrundfarbe in verschiedenen Umgebungen

Ich habe ein langes .tex-Dokument und möchte die Hintergrundfarbe der Teile, die ich bereits auf Tippfehler überprüft habe, in ein helles Grün ändern. Ich suche nach einem einfachen Befehl, der wie folgt verwendet werden kann:

\HIGHLIGHT{

<here I want to put a part of my tex file that contains different environments like theorems, figures...>

}

Der Befehl kann aber \hl{}keine anderen Umgebungen enthalten, das folgende Beispiel funktioniert nicht:

\documentclass[10pt]{article}         
\usepackage[english]{babel}
\usepackage{amssymb,amsmath,amsthm,amsfonts}
\usepackage{xcolor,soul}

\newtheorem{theorem}{Theorem}
\begin{document}
\section{Introduction}
\hl{
    \begin{theorem}
    A theorem.
    \end{theorem}
}
\end{document}

Habt ihr Vorschläge, welcher Befehl hier verwendet werden könnte (der Satz soll nicht verändert werden, nur die Farbe)?

Antwort1

Wie in einem meiner Kommentare zu der Frage vorgeschlagen, würde ich tcolorboxund seine \newtcbtheoremMakros verwenden, wobei ich zwei grundsätzlich identische Umgebungen habe, von denen eine die checkedstyleund die andere die verwendet uncheckedstyle. Wenn ein Theorem noch nicht überprüft wurde, verwenden Sie \begin{uctheorem}...\end{uctheorem}es und bearbeiten Sie es später \begin{theorem}...\end{theorem}oder entfernen Sie die colback={green!50!white}Anweisung einfach aus der Definition von uncheckedstyle.

Letztendlich wäre aus meiner Sicht ein search-and-replacealler uctheoremVorkommen durch theoremdie beste Vorgehensweise, aber das ist natürlich Geschmackssache.

Eine andere Möglichkeit besteht darin, eine „echte“ Umgebung zu verwenden tcolorbox, die eine lokale Angabe von Optionen ermöglicht, was mit den tcbtheoremUmgebungen nicht möglich ist.

\documentclass[10pt]{article}         
\usepackage[english]{babel}
\usepackage{amssymb,amsmath,amsthm,amsfonts}
\usepackage{xcolor}
\usepackage[most]{tcolorbox}

\tcbset{%
  checkedstyle/.style={breakable,enhanced, sharp corners,colback={yellow!50!white}},
  uncheckedstyle/.style={checkedstyle,colback={green!50!white}}
}

\newtcbtheorem{theorem}{Theorem}{checkedstyle}{theo}

\newtcbtheorem{uctheorem}{Theorem}{uncheckedstyle}{theo}




\begin{document}
\section{Introduction}
\begin{theorem}{My theorem}{foo}
  A theorem.
\end{theorem}

\begin{uctheorem}{My other theorem}{foobar}
  An unchecked theorem
\end{uctheorem}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Als Alternative, die für Ihren Anwendungsfall, bei dem beliebige Teile eines LaTeX-Dokuments hervorgehoben werden, gut funktionieren sollte, besteht ein interessanter Ansatz darin, den Seitenhintergrund teilweise einzufärben, indem Sie colorundafterpage teilweise einzufärben (basierend aufhttps://tex.stackexchange.com/a/237427/223749). Das hat den Vorteil, dass Sie Ihren Inhalt überhaupt nicht ändern müssen und die Formatierung nicht beeinträchtigt wird. Die Hervorhebung umfasst nur ganze Zeilen und schließt auch die linken und rechten Ränder ein, aber ich vermute, dass das für Ihren Anwendungsfall kein Problem ist. Auch wenn sich Floats in Ihrer Hervorhebungsumgebung befinden und diese aus dieser herausschweben, werden sie nicht hervorgehoben.

MWE, einschließlich eines Theorems, einer Abbildung und eines Seitenumbruchs:

\documentclass{article}

\usepackage{mwe}

\usepackage{amssymb,amsmath,amsthm,amsfonts}
\newtheorem{theorem}{Theorem}

\usepackage{color}
\definecolor{lightgreen}{rgb}{0.56, 0.93, 0.56}

\usepackage{afterpage}

\makeatletter
% Macro \changepagecolor has the same syntax as \pagecolor or \color
% with an optional argument and a mandatory argument.
\newcommand*{\changepagecolor}{%
  \@ifnextchar[\@changepagecolor@i\@changepagecolor@ii
}
% Case: \changepagecolor[...]{...}
\def\@changepagecolor@i[#1]#2{%
  \@changepagecolor@do{[{#1}]{#2}}%
}
% Case: \changepagecolor{...}
\newcommand*{\@changepagecolor@ii}[1]{%
  \@changepagecolor@do{{#1}}%
}
\newcommand*{\@changepagecolor@do}[1]{%
  % Fill the remaining space with a colored rule
  \begingroup
    \offinterlineskip
    \hbox to 0pt{%
      \kern-\paperwidth
      \vtop to 0pt{%
        \color#1%
        \hrule width 2\paperwidth height \paperheight
        \vss
      }%
      \hss
    }%
  \endgroup
  % Set page color for the next page
  \afterpage{\pagecolor#1}%
}
\makeatother

\newenvironment{highlight}%
  {\changepagecolor{lightgreen}}%
  {\changepagecolor{white}}


\begin{document}
\blindtext
\blindtext
\blindtext
\blindtext

\begin{highlight}
\blindtext

\begin{theorem}
    a theorem.
\end{theorem}

\begin{figure}[!h]
    \includegraphics[width=.4\textwidth]{example-image-a}\hfill
    \includegraphics[width=.4\textwidth]{example-image-b}
    \caption{This is a figure caption within the custom highlight environment}
\end{figure}
\end{highlight}

\blindtext
    
\end{document}

Das Ergebnis:

Bildbeschreibung hier eingeben

verwandte Informationen