
Dank Ulrike und Cfr gibt es jetzt eine funktionierende Lösung!
Ich bin allerdings immer noch ein bisschen neugierig, ob es auch anders geht. Gibt es eine andere Möglichkeit, als die eingebundenen Grafiken damit zu umgeben \tikzexternaldisable
und \tikzexternalenable
sicherzustellen, dass die Grafiken des Beamer-Designs nicht externalisiert werden?
Ich habe ein individuelles Design, bei dem ich in der Fußzeile ein Logo einfüge.
Wenn ich tikzexternalize mit dem Design verwende, was ich manchmal, aber nicht immer mache, wird das Logo externalisiert, sofern ich die Externalisierung nicht deaktiviere ( \tikzexternaldisable
). Dies schlägt jedoch fehl, wenn ich die externe Bibliothek nicht geladen habe (da \tikzexternaldisable
ist dann ein unbekannter Befehl).
Wie kann ich sicherstellen, dass die Themeninhalte nicht ausgelagert werden?
Dieses MWE externalisiert das Fußzeilenlogo:
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{external}
\makeatletter
\defbeamertemplate*{footline}{SomeName}[1][]%
{%
\begin{beamercolorbox}[wd=\paperwidth,ht=.1\paperheight,#1]{logo in foot}%
\tikzexternaldisable %fails if external isn't loaded
%^replacing with \csname tikzexternaldisable \endcsname has same effect as commenting the line out
\tikz\draw[fill=blue] (0,0) rectangle (.9286484375\paperwidth,.05\paperheight);
\tikzexternalenable %fails if external isn't loaded
%^replacing with \csname tikzexternalenable \endcsname has same effect as commenting the line out
\end{beamercolorbox}%
}
\makeatother
\tikzexternalize %Externalizes all images unless I disable and enable it in the beamertemplate
%Best would be if I could tell the externalize library to only externalize images in some of the layers of a beamer frame
\author{John Smith}
\begin{document}
\maketitle
\begin{frame}
\tikz\draw (0,0) circle (10cm);
\end{frame}
\end{document}
Ich hoffe, dass es einen eleganten Beamer- oder Tikz-Befehl/eine elegante Einstellung gibt, die beim Einfügen von Grafiken in das Design keine zusätzlichen Zeilen erfordert. Lassen Sie mich wissen, wenn etwas unklar ist!
Antwort1
Eine sehr einfache Methode besteht darin,
\AtBeginDocument{\providecommand\tikzexternaldisable{\relax}}
in Ihrer Präambel. Wenn Sie die Bibliothek laden, passiert nichts. Wenn Sie das nicht tun, wird sichergestellt, dass der Befehl so definiert ist, dass er nichts erfolgreich tut.
Andere Möglichkeiten wären zum Beispiel, TikZ anzuweisen, nur die von Ihnen explizit benannten Bilder auszulagern und dann die Bilder zu benennen, die Sie auslagern möchten.
Oder Sie könnten die Befehle zum Festlegen/Definieren der Vorlage von Beamer ändern, aber da Beamer eine Vielzahl davon auf unterschiedliche Weise verwendet, müssten Sie nachverfolgen, welche Auswirkungen dies haben könnte.
Ich bin mir nicht ganz sicher, warum Sie die Designgrafiken nicht externalisieren möchten, da Sie es nicht sagen. (Ich hätte gedacht, dass diese die besten Kandidaten wären.)