За текстом, но поверх фона проектора

За текстом, но поверх фона проектора

Я хотел бы использоватьОтвет Анри Менке на другой вопросс проектором. К сожалению, tikzpicture не видно. Как и было указаноздесьэто потому, что tikzpicture находится за фоном бимера. Поэтому он станет видимым, если сделать фон прозрачным \setbeamercolor{background canvas}{bg=}. Но этот слайд должен иметь тот же фон бимера, что и все остальные слайды.

Как мне расположить tikzpicture позади отчеканенного текста, но поверх фона проектора?

\documentclass{beamer}

\usepackage{minted}
\newminted{latex}{linenos, frame=lines, autogobble, breaklines}

\usepackage{tikz}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture,baseline=(#1.base)] \node (#1) {\vphantom{I}};}

\usepackage{eso-pic}

\newcommand{\colorPreamble}{blue!10}
\newcommand{\colorDocument}{green!10}

\begin{document}

\begin{frame}[fragile]
    \twocolumn
    \begin{latexcode*}{escapeinside=||}
        |\tikzmark{n}|\documentclass{article}

        [...]
        |\tikzmark{c}|
        \begin{document}
            [...]
        |\tikzmark{s}|\end{document}
    \end{latexcode*}
    \AddToShipoutPictureBG*{%
        \begin{tikzpicture}[remember picture, overlay]
            \path[overlay, fill=\colorPreamble] (n.north) rectangle ([xshift=\linewidth] c.south);
            \path[overlay, fill=\colorDocument] (c.south) rectangle ([xshift=\linewidth] s.south);
        \end{tikzpicture}
    }
    \twocolumn
\end{frame}

\end{document}

решение1

Я не могу протестировать с помощью minted, но я думаю, что вы можете просто добавить tikzкартинку в собственный механизм фона проектора вместо использования eso-pic.

\documentclass{beamer}

\usepackage{tikz}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture,baseline=(#1.base)] \node (#1) {\vphantom{I}};}

\newcommand{\colorPreamble}{blue!10}
\newcommand{\colorDocument}{green!10}

\begin{document}

{
    \addtobeamertemplate{background canvas}{}{%
        \begin{tikzpicture}[remember picture, overlay]
        \path[overlay, fill=\colorPreamble] (n.north) rectangle ([xshift=\linewidth] c.south);
      \path[overlay, fill=\colorDocument] (c.south) rectangle ([xshift=\linewidth] s.south);
    \end{tikzpicture}
    }
    \begin{frame}[fragile]
            \tikzmark{n}
            [...]

            \tikzmark{c}
            [...]

            \tikzmark{s}
    \end{frame}
}

\begin{frame}
content...
\end{frame}
\end{document}

введите описание изображения здесь

Связанный контент