#latex #beamer
#Латекс #излучатель
Вопрос:
Мои документы часто содержат «полностью ограниченные» фреймы этой формы:
begin{frame}<0>
Lorem ipsum dolor.
end{frame}
Из-за <0> в конце первой строки фреймы, подобные этому, делают
не отображается в документах, которые я создаю с помощью pdflatex или xelatex.
Но они все равно приводят к увеличению счетчика framenumber, что приводит
к странным результатам. Вот пример:
documentclass[xelatex]{beamer}
begin{document}
setbeamertemplate{footline}{hfillinsertframenumber}
begin{frame}<0>{Frame A}
end{frame}
begin{frame}{Frame B}
end{frame}
end{document}
Когда я обрабатываю этот документ с помощью xelatex, я получаю документ PDF
содержит один фрейм. Номер фрейма в нижней строке фрейма равен
2. Я бы хотел, чтобы это было 1. Я мог бы вручную сбросить счетчик кадров
после каждого ограниченного фрейма, но в больших документах со многими такими
фреймы, это проблема. Есть ли какой-либо способ остановить ограниченные кадры
из-за увеличения счетчика?
Комментарии:
1. Комментарий для всех, кого сюда привела поисковая система: вы можете найти целое сообщество на TeX StackExchange , где ни один вопрос, связанный с TeX, не является слишком маленьким. Есть куча вопросов к бимеру .
Ответ №1:
Beamer теперь автоматически исключает кадры, которые скрыты с помощью <0>
, из увеличения счетчика кадров. Таким образом, решение теперь невероятно простое:
ничего не делай 🙂
documentclass{beamer}
setbeamertemplate{footline}[frame number]
begin{document}
begin{frame}<0>
frametitle{Frame A}
end{frame}
begin{frame}
frametitle{Frame B}
end{frame}
end{document}
Решение до версии v3.65:
Кадры могут быть исключены из счетчика кадров с помощью noframenumbering
опции:
documentclass{beamer}
setbeamertemplate{footline}[frame number]
begin{document}
begin{frame}<0>[noframenumbering]
frametitle{Frame A}
end{frame}
begin{frame}
frametitle{Frame B}
end{frame}
end{document}
Ответ №2:
Вы могли бы создать новый макрос среды, содержащий исправление счетчика:
newenvironment{restrictedframe}[1]
{begin{frame}<0>{#1}}
{end{frame} addtocounter{framenumber}{-1}}
Комментарии:
1. Спасибо. Это работает, при условии, что я изменяю
addtocounter{framecounter}
наaddtocounter{framenumber}
.2. В текущей версии beamer нумерация будет отключена, потому что теперь кадры с
<0>
автоматически исключаются из увеличения framecounter. Также есть много ситуаций, в которых beamer должен действительно видетьend{frame}
и будет волноваться, если вы спрячете его в пользовательской среде. Если вам действительно, действительно необходимо это сделать, по крайней мере, используйтеenvironmnet
ключ, чтобы сообщить beamer об этом:3.
newenvironment{restrictedframe}[2][] {begin{frame}<0>[environment=restrictedframe,#1]frametitle{#2}} {end{frame}}