
Благодаря Ульрике и Cfr теперь есть работающее решение!
Мне все еще немного любопытно, можно ли это сделать по-другому. Есть ли другой способ, чем окружить включенную графику \tikzexternaldisable
и \tikzexternalenable
убедиться, что графика темы бимера не будет выведена наружу?
У меня есть индивидуальная тема, в которой я разместил логотип в нижней строке.
Когда я использую tikzexternalize с темой, что я иногда делаю, но не всегда, логотип выводится наружу, если я не отключу выведение наружу ( \tikzexternaldisable
). Однако это не срабатывает, если я не загрузил внешнюю библиотеку (поскольку \tikzexternaldisable
это неизвестная команда).
Как убедиться, что содержимое темы не будет вынесено за пределы сайта?
Этот MWE выводит логотип нижней линии наружу:
\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}
Надеюсь, есть какая-нибудь элегантная команда/настройка beamer или tikz, которая не требует дополнительных строк при вставке графики в тему. Дайте мне знать, если что-то непонятно!
решение1
Один очень простой метод — добавить
\AtBeginDocument{\providecommand\tikzexternaldisable{\relax}}
в вашей преамбуле. Если вы загрузите библиотеку, это ничего не сделает. Если вы этого не сделаете, это гарантирует, что команда будет определена так, чтобы ничего не делать успешно.
Другими вариантами могут быть, например, указание TikZ экспортировать только те изображения, которые вы явно указали, а затем указать имена тех изображений, которые вы хотите экспортировать.
Или вы можете изменить команды настройки/определения шаблонов Beamer, но поскольку Beamer использует их множество разными способами, вам нужно будет проследить, какое влияние это может оказать.
Я не совсем понимаю, почему вы не хотите, чтобы тематическая графика была вынесена наружу, поскольку вы об этом не говорите. (Я бы подумал, что это были бы первые кандидаты.)