Markieren Sie das Element in der Liste, nachdem Sie es aufgedeckt haben

Markieren Sie das Element in der Liste, nachdem Sie es aufgedeckt haben
\documentclass[xcolor=table ]{beamer}


\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}

\title[Your Short Title]{Your Presentation}
\author{You}
\institute{Where You're From}
\date{Date of Presentation}

\begin{document}


\begin{frame}{Introduction}

\begin{itemize}
  \item <1-> Your introduction goes here!
  \item <2> Use \texttt{itemize} to organize your main points.
\end{itemize}

\end{frame}
\begin{frame} 
\begin{itemize}
  \item Your introduction goes here!
  \item {\colorbox{yellow} {Use \texttt{itemize} to organize your main points.}}
\end{itemize}

\end{frame}

\end{document}

Dieses MWE zeigte eine detaillierte Liste. Nachdem zwei aufeinanderfolgende Elemente angezeigt wurden, erwarte ich, dass das zweite Element hervorgehoben wirdin einem dritten Schritt. Ich habe dies durch Duplizieren des Rahmens erreicht. Kann dies durch Überlagerung ohne manuelles Duplizieren des Rahmens erreicht werden?

Antwort1

Die einfache Lösung besteht darin, den Codeteil bedingt \onlyzu machen :\colorbox{yellow}

    \begin{frame}{Introduction}
        \begin{itemize}
            \item <1-> Your introduction goes here!
            \item <2-> \only<3>{\colorbox{yellow}}{Use \texttt{itemize} to organize your main points.}
        \end{itemize}
    \end{frame}

Allerdings gibt es dabei ein Problem: Da \colorboxein Bereich um den Text herum ausgefüllt wird, ändert sich der Abstand, was zu sichtbaren Sprüngen führt (probieren Sie es aus, um es zu sehen).

Man kann das beheben, indem man immer ein verwendet \colorbox, es aber mit der Hintergrundfarbe füllt, wenn es nicht hervorgehoben werden soll. Da das etwas chaotisch ist, würde ich dafür einen neuen Befehl definieren:

\documentclass[xcolor=table]{beamer}
\usepackage[english]{babel}

\title[Your Short Title]{Your Presentation}
\author{You}
\institute{Where You're From}
\date{Date of Presentation}

\newcommand<>{\mycolorbox}[3][white]{{%
    % #1 = default color when overlay specification is not fulfilled (default: white)
    % #2 = color when overlay specification is fulfilled
    % #3 = text to be displayed
    % #4 = the actual overlay specification
    \def\mycolor{#1}%
    \only#4{\def\mycolor{#2}}%
    \colorbox{\mycolor}{#3}%
}}

\begin{document}
    \begin{frame}{Introduction}
        \begin{itemize}
            \item <1-> Your introduction goes here!
            \item <2-> \mycolorbox<3>{yellow}{Use \texttt{itemize} to organize your main points.}
        \end{itemize}
    \end{frame}
\end{document}

Die Syntax für \newcommand<>wird im beamerBenutzerhandbuch von im Abschnitt9.6.1 Befehle und Umgebungen Overlay-Spezifikationsfähig machen. Das erste Argument ist der Name des zu definierenden Makros ( in diesem Fall), dann folgt die Anzahl der Argumente ohne die Overlay-Spezifikation und schließlich der Standardwert für das erste Argument. Innerhalb des Befehls können die Argumente mit dem Zeichen gefolgt von ihrer Nummer ( , usw., siehe Kommentare) \mycolorboxreferenziert werden .##1#2

Das doppelte Klammernpaar {{und }}dient zum Erstellen einer TeX-Gruppe, was bedeutet, dass alle Makro-(Neu-)Definitionen am Ende vergessen werden. Das äußere Paar begrenzt den Inhalt des Befehls, während das innere Paar die TeX-Gruppe darstellt.

Anschließend definiere ich mit \def(ich hätte auch verwenden können \newcommand) ein neues Makro, \mycolor, das zunächst die Standardfarbe ist. Mit \onlydefiniere ich es dann bedingt auf die gewünschte Farbe um (in diesem Beispiel Gelb). Schließlich rufe ich den \colorboxBefehl auf.

Übrigens ist es auch möglich, einfach zu schreiben \colorbox<3>{yellow}{text}, aber aus irgendeinem Grund wird dabei ein schwarzer Hintergrund verwendet ...

verwandte Informationen