
Я реализовал для every picture
аргумента overlay
и remember picture
. Интересно, как мне добиться исключений для определенных картинок tikz из этих двух аргументов. Например, определив вычитающий аргумент (не использовать overlay
и/или не использовать remember picture
) или аргумент, который смещает весь every picture
контент. Кто-нибудь знает способ?
МВЭ:
\documentclass{beamer}
\usepackage{tikz}
\tikzstyle{every picture}+=[overlay,remember picture]
\begin{document}
\begin{frame}
\tikz \node[circle,fill=blue,minimum size=1cm] at (0,0) {};
\end{frame}
\end{document}
решение1
Если вы посмотрите на определение overlay
,
\tikzset{
overlay/.is choice,
overlay/true/.code={\pgf@relevantforpicturesizefalse},
overlay/false/.code={\pgf@relevantforpicturesizetrue},
overlay/.default=true
}
вы понимаете, что overlay
это просто сокращение для overlay=true
. Поэтому, чтобы отменить его, вы можете использовать overlay=false
. Те же самые утверждения применимы к
\tikzoption{remember picture}[true]{\csname pgfrememberpicturepositiononpage#1\endcsname}
Конечно, затем вы можете определить стиль exception
, который установит оба ключа на false
.
\documentclass{beamer}
\usepackage{tikz}
\tikzset{every picture/.append style={overlay,remember picture},
exception/.style={overlay=false,remember picture=false}}
\begin{document}
\begin{frame}
\begin{tikzpicture}
\node[circle,fill=blue,minimum size=1cm] at (current page.center) {};
\end{tikzpicture}
\begin{tikzpicture}[overlay=false,remember picture=false]
\node[circle,fill=red,minimum size=1cm] at (0,0) {};
\end{tikzpicture}
\begin{tikzpicture}[exception]
\node[circle,fill=orange,minimum size=1cm] at (0,0) {};
\end{tikzpicture}
\end{frame}
\end{document}