article+beamerarticleには回避できる調整が必要です

article+beamerarticleには回避できる調整が必要です

beamerのドキュメントには次のように規定されています。

プレゼンテーションの記事モードは、の代わりにarticleまたはbookあるいは他のクラスをドキュメント クラスとして指定しbeamer、パッケージ をロードすることによって作成されますbeamerarticle

パッケージはbeamerarticle、モードに適した方法で、beamer のほぼすべてのコマンドを定義しますarticle

したがって、の代わりに を使用するだけで、クラスを使用して最初にプレゼンテーション用にarticle作成された既存のドキュメントのバージョンを事実上作成できることが期待できます。beamer\documentclass{article}\usepackage{beamerarticle}\documentclass{beamer}

しかし、残念ながら、次の例が示すように、そうではありません。

% \documentclass{beamer}
\documentclass{article}\usepackage{beamerarticle}
%
\beamerdefaultoverlayspecification{<+->}
%
\begin{document}
\begin{frame}
  \begin{itemize}
  \item Foo
  \item Bar
  \end{itemize}
\end{frame}
\end{document}

未定義であるとエラーが発生します\beamerdefaultoverlayspecification

はい、このコマンドはモードでのみ使用できますpresentation:

\mode<presentation>{%
  \beamerdefaultoverlayspecification{<+->}%
}

\relaxしかし、なぜそのようなコマンドはによって再定義されないのでしょうかbeamerarticle?

答え1

  • beamerarticleパッケージが必要beamerbasearticle
  • beamerbasearticleパッケージが必要beamerbaserequires
  • beamerbaserequiresパッケージが必要beamerbaseoverlay
  • beamerbaseoverlay
    • \mode<presentation>259行目に変わります
    • \beamerdefaultoverlayspecification503行目に定義されています
    • \mode<all>843行目に戻ります

したがって、私の推測では、\beamerdefaultoverlayspecification記事モードでは意図的に未定義のままになっていると思われます。

答え2

現在のメンテナーとしてbeamer、私は過去の設計アプローチについて推測し、問題を記録する具体的な変更を要求します。

私の提案は、単一の「実際の」ソースファイルには両方が含まれないという考えから始める必要があるということです。

\documentclass{beamer}

そして

\usepackage{beamerarticle}

代わりに、2つのスタブファイルが期待されます。1つは次のような形式です。

\documentclass{beamer}
% Rest of preamble
\begin{document}
\input{document-body}
\end{document}

そして2番目

\documentclass{article}
\usepackage{beamerarticle}
% Rest of preamble
\begin{document}
\input{document-body}
\end{document}

その理由は、コンテンツ同じかもしれないが、設定2つのケースはかなり異なります。

の具体的なケースでは\beamerdefaultoverlayspecification、 コマンドは実際には記事では意味をなさず (オーバーレイはありません)、プレゼンテーションでのみ意味をなします。 そのため、 の「実際の」プリアンブルで コマンドに遭遇することは予想されないため、article定義する必要はありません。

beamer冠詞には当てはまらない他の多くの概念についても、同様のことが言えます。

関連情報