Beamer でフレームに allowframebreaks を指定すると、フレームの内容が長いときにフレームを分割してくれます。このとき各フレームタイトルには「タイトルI」のように何枚目かを示すローマ数字が付きますが、そうではなく「タイトル (1/2)」「タイトル (2/2)」のように何枚中何枚目かを表示したいこともあると思います。→ 以下で可能です。
slide.tex
\documentclass[t,unicode,10pt]{beamer}
% ---------- フォント設定 ----------
\usepackage{zxjatype} % 日本語を組版するために必要
% ---------- 分割フレームのタイトルに (何枚目/何枚中) を表示する設定 ----------
\makeatletter
\setbeamertemplate{frametitle continuation}{%
(\insertcontinuationcount/%
\number\numexpr\beamer@endpageofframe-\beamer@startpageofframe+1\relax)}
\makeatother
% ========== スライド内容 ==========
\begin{document}
\begin{frame}[allowframebreaks]{タイトル}
あああ \\ あああ \\ あああ \\ あああ \\ あああ \\
あああ \\ あああ \\ あああ \\ あああ \\ あああ \\
あああ \\ あああ \\ あああ \\ あああ \\ あああ \\
あああ \\ あああ \\ あああ \\ あああ \\ あああ \\
あああ \\ あああ \\ あああ \\ あああ \\ あああ \\
\end{frame}
\end{document}
ビルドすると以下のようになります。
設定内容の説明
-
\makeatletter ... \makeatotherで@を含む内部変数を参照できるようにします。 -
\setbeamertemplate{frametitle continuation}{...}で、タイトルに続く部分のテンプレートを上書きします。 -
\insertcontinuationcountに「何枚目」の数字があるので取得します。 -
\beamer@startpageofframeと\beamer@endpageofframeに分割されたフレームたちの開始ページと終了ページがあるので何枚になったかの計算式を書きます (終了 - 開始 + 1)。 - 計算式を扱える
\numexpr ... \relaxで計算式を囲んで\numberで文字列にします。
参考文献
-
beamer - How do I insert the total continuation count in the allowframbreaks frame title? - TeX - LaTeX Stack Exchange - 本記事の方法はこの LaTeX Stack Exchange の回答と同じですが、
\setcounter\addtocounterで加減算をする代わりに\numexpr ... \relaxに直接計算式を書いています。
