Beamerでノートを付けると本文が消える

Beamerでノートを付けると本文が消える

- T H の投稿
返信数: 7

初利用です.
Beamerスライドにプレゼンテーションで使うスピーカーノートを書こうとしたのですが,うまく動かなかったので質問します.

環境:macOS, VSCode, TeX 3.141592653 (TeX Live 2023)
エンジン:Beamer, upLaTeX + dvipdfmx

○問題点
\setbeameroption{show notes on second screen} を入れるとメインスライドの地の文が消える.
地の文とは frame 環境に直接書かれた文という意味で,block , itemize などの環境や \textcolor に入っている文,図は消えないようです.
この現象の原因と解決策を知りたいです.

○分かっていること
\documentclass のオプションの dvipdfmx を消すと地の文は現れますが,レイアウトや画像表示が崩れるのでダメです.
\setbeameroption{show notes} だと問題なく表示されます.が,ノートを右に付けたいです,
pgfpagesdvipdfmx に対応していないことが原因だと(Beamer User Guide p.29のリストに dvipdfmx がなかったので)思っていましたが,調べたら最新版では対応しているようだったので,結局原因が分かっていません.
・情報ごと消えている訳ではなく,文章のスペースは確保されているようです.( コードの \textcolor の前の部分)

○現状の解決案
normal text と同じ色設定の block 環境を新しく作って全ての地の文を覆えば,とりあえず表示はされます.
ただ単純に毎回 block を作るのが面倒なので,例えばプリアンブルだけで解決できるような策があれば嬉しいです.

○テストコード

\documentclass[uplatex, dvipdfmx]{beamer}
% \documentclass[uplatex]{beamer} % 文は消えないがいろいろ崩壊する

\usetheme[block=fill]{metropolis}

% ノート
\usepackage{pgfpages} % 無くても動く
\setbeamertemplate{note page}{\vfill\insertnote\vfill}
\setbeameroption{show notes on second screen}
% \setbeameroption{show notes} % これは動く

% 解決案?
\newenvironment<>{textblock}{
  \setbeamercolor{block title}{bg=normal text.bg}\begin{block}{}{#1}}
  {\end{block}\setbeamercolor{block title}{bg=structure}}

\title{タイトル}
\author{氏名}
\date{\today}

\begin{document}
\maketitle
\begin{frame}
  地の文.見えなくなる.
  \note{スピーカーノートを書きたい.}
\end{frame}
\begin{frame}
  この下にブロックがある.
  \begin{block}{block title} % blockに入っている文は消えない
    ブロックの中身.消えない.
  \end{block}
  この上にブロックがある.\textcolor{black}{textcolorでも消えない}
  \note{blockなどに入っている文は消えない.}
\end{frame}
\begin{frame}
  \begin{textblock}
    textblockの中身.消えない.
  \end{textblock}
  \note{無理矢理ブロック環境に入れれば見えるようにはなる.}
\end{frame}
\end{document}

○出力
PDFファイルを添付します.

お力をお貸しください.よろしくお願いします.

追伸 Markdownの書き方がよく分かっておらず見辛いかもしれません.ご容赦ください.

T H への返信

Re: Beamerでノートを付けると本文が消える

- 和田 勇 の投稿
  • 闇夜のカラスの逆というか、雪原の白鳥、「白地の背景」に「白色の文字」 を描画しているからです
  • 問題のスクリーン(2ページ目)で全選択 ⌘+A をすれば、何も見えないところが選択されていますのでコピペして適当なところに貼り付ければ見えなかった文字が出てきます。
  • show notes on second screen invisible text で検索して以下のを対策を見つけました。

  • ちなみに pdftotext test.pdf を実行して作成される test.txt や rga . test.pdf などコマンで実行すると見えなかった文字が見えます。

    • pdftotext ... poppler という pdf 周りの各種ツールが同梱されているものの一つで pdf からテキストを取り出し .txt に保存します
    • rga ... ripgrep-all で検索してください。 pdf などのファイルから文字列検索するツールです。検索文字列として . (ピリオド=any character) を指定しています。
和田 勇 への返信

Re: Beamerでノートを付けると本文が消える

- T H の投稿

和田 様

> \def\pgfsysdriver{pgfsys-dvipdfm.def}\documentclass{...} の前に書き込む
テストコードではこちらの方法で完全に解決したのですが,実際に使っているスライドで使うと block 環境の描画が少し崩れてしまいました.(この問題は提示したコード外にあると思うので自分で探してみます)
提示いただいたページの20の方のAnswerでは描画を含めて問題なく動いていそうなので,一旦そちらを採用しました.
自分で検索した時はキーワードの選び方が悪かったようです.お手数をおかけしました.

大変助かりました.ありがとうございました.

T H への返信

Re: Beamerでノートを付けると本文が消える

- T H の投稿

元の質問と直接の関係はありませんが,\def\pgfsysdriver{pgfsys-dvipdfm.def} について分かったことを書いておきます.

まず自分の使っていたスライドで block 環境が崩れた原因は,\setbeamertemplate{blocks}[rounded] でした.
また metropolis テーマでは他の問題はありませんでしたが,例えば Madrid テーマだと \maketitleblock 環境に次のようなエラーが発生するようになります.

~/test.tex:20: Missing { inserted.
<to be read again> 
                   -
l.20 \maketitle

どのテーマだと発生するかの規則性はよく分かりませんでした.
上に示していただいたページの上位の解決策

\makeatletter
\def\beamer@framenotesbegin{% at beginning of slide
  \usebeamercolor[fg]{normal text}%
  \gdef\beamer@noteitems{}%
  \gdef\beamer@notes{}%
}
\makeatother

ではどの問題も発生しなかったので,原始的ですがこちらの方が便利に感じました.

T H への返信

Re: Beamerでノートを付けると本文が消える

- 和田 勇 の投稿

Table of Contents

  1. 文字が消える 対策別解
  2. block 環境が崩れた原因が\setbeamertemplate{blocks}[rounded] の報告について
  3. テーマによってはエラーになる件について

文字が消える 対策別解

  • uplatex → lualatex

    • 処理するエンジンを変えても良ければ
      • 注意 使用するパッケージよっては利用できないものがあるかもしれない
    • 差分・・・当初の質問にあったソースを以下のように変更

      --- test-uplatex.tex
      +++ test-lualatex.tex
      @@ -1,5 +1,6 @@
      -\documentclass[uplatex, dvipdfmx]{beamer}
      -% \documentclass[uplatex]{beamer} % 文は消えないがいろいろ崩壊する
      +\documentclass[unicode,12pt]{beamer}% 'unicode'必須
      +\usepackage{luatexja}% 日本語対応
      +\usepackage[ipaex]{luatexja-preset}
      
          \usetheme[block=fill]{metropolis}
      
    • 補足 uplatex を使う際は documentclass のオプションには uplatex dvipdfmx を付与してくだささい

      • pdf 化する際にたくさんの警告が発生→文字が正しく表示されないなどの問題が発生する

block 環境が崩れた原因が\setbeamertemplate{blocks}[rounded] の報告について

この件のご報告ではどのような対処されたのかがわかりません。

今後同じような症状でこのフォーラムを訪れる方のためにも、 問題のソースを公開できるように改修する手間がありますが、 提示していただけると助かります。

テーマによってはエラーになる件について

  • 次のテーマを上記ソースで試してみました
    • block=fill オプション付きでも通るテーマ
      • Boadilla Madrid Berkeley Goettingen Singapore Szeged
    • block=fill オプション付きだと通らないテーマ
      • CambridgeUS Antibes Montpellier
  • 当初質問時のソースで block=fill 無しの上記のテーマに変更してテストしてみましたが通ります。

    ちょっとむづかしいかもしれませんが ... 使用したシェルスクリプトは以下の通り

    #!/usr/bin/env zsh
    
    t1="Boadilla Madrid Berkeley Goettingen Singapore Szeged"
    t2="CambridgeUS Antibes Montpellier"
    
    for t in $(echo $t1 $t2) ; do
        ii=test-uplatex.tex
        oo=test-uplatex-$t.tex
        rm -f $oo
        cat $ii | sed "/usetheme/{ s/.block=fill.//; s/metropolis/$t/; }" > $oo
        ptex2pdf -l -u $oo
    done
    
  • 可能であれば、エラーになるテーマのソースを添付してください
和田 勇 への返信

Re: Beamerでノートを付けると本文が消える

- T H の投稿

ご指摘があったのでコードを添付し,改めて結果と対策をまとめます.

1. block 環境が崩れた原因が\setbeamertemplate{blocks}[rounded] の報告について

こちらについてですが,VSCodeの表示の問題で,出力されたPDFは正常でした.よって問題はありません.

コード

\def\pgfsysdriver{pgfsys-dvipdfm.def}
\documentclass[uplatex, dvipdfmx]{beamer}
\usetheme[block=fill]{metropolis}
\setbeamertemplate{blocks}[rounded] % 消せば問題なし
\setbeamertemplate{note page}{\pagecolor{yellow!5}\vfill\insertnote\vfill}
\setbeameroption{show notes on second screen}

\begin{document}
\begin{frame}
  \begin{block}{タイトル}
    ブロックの中身.
  \end{block}
  \note{blockのタイトル下部が横に伸びる.}
\end{frame}
\end{document}

結果

VSCodeのプレビューでは添付画像のようにブロックタイトルの下の部分が横に伸びます.
出力されたPDFファイルでは正常に表示されます.

対策

\def\pgfsysdriver{pgfsys-dvipdfm.def} ではなく

\makeatletter
\def\beamer@framenotesbegin{% at beginning of slide
  \usebeamercolor[fg]{normal text}%
  \gdef\beamer@noteitems{}%
  \gdef\beamer@notes{}%
}
\makeatother

を使えばVSCodeのプレビューでも問題なく表示されます.

2. テーマによってはエラーになる件について

コード

\def\pgfsysdriver{pgfsys-dvipdfm.def}
\documentclass[uplatex,dvipdfmx]{beamer}
\usetheme{Madrid}
% \usetheme[block=fill]{metropolis}

% ノート
\usepackage{pgfpages}
\setbeameroption{show notes on second screen}

\title{タイトル}

\begin{document}
% \maketitle % \maketitleでエラー
\begin{frame}
  \begin{block}{タイトル} % block環境もエラー
    ブロックの中身.
  \end{block}
\end{frame}
\end{document}

結果

(省略)/test.tex:13: Missing { inserted.

               -

l.13 \maketitle % \maketitleでエラー

対策

  1. と同じ対策で問題なく動きます.

必要であればログ全体なども添付します.よろしくお願いします.

添付 test.png
T H への返信

Re: Beamerでノートを付けると本文が消える

- 和田 勇 の投稿

\def\pgfsysdriver{pgfsys-dvipdfm.def} vs \makeatletter…\makeatother

  • ご報告内容をもう少し検討すればよかったと反省しています。&ご丁寧な更なるご報告ありがとうございます
  • 今回のご報告を読み、以下のように理解しました。
    • \setbeameroption{show notes on second screen} を記述した場合の文 字が消えてしまう対策に対して \def\pgfsysdriver{pgfsys-dvipdfm.def} は有効であるが、副作用もある
      • VSCodeのプレビューでは添付画像のようにブロックタイトルの下の部分が横に伸びる
      • \maketitle との相性が悪い
    • その改善策として \makeatletter…\makeatother として改善され他のでこちらの方法を採択
  • 上記のことは先日紹介した Normal text is invisible when using beamer with notes and XeLaTeXAnswer 20 にもその詳細は不明ですが顛末が書かれていますね
  • テーマによってエラー のは \def\pgfsysdriver{pgfsys-dvipdfm.def} の副作用によるものだと思いま すので、対処方法通りで良いでしょう
和田 勇 への返信

Re: Beamerでノートを付けると本文が消える

- T H の投稿
簡潔にまとめていただきありがとうございます.
最初の質問から本題が変わっていたので,こちらでより分かりやすく議題と結論をまとめるべきでした.
LaTeXの問題についてももちろんのこと,フォーラムの使い方についても学ぶことができました.改めて,ここまで対応していただきありがとうございました.