dviout-presentation

# dvioutでのプレゼンテーション

May, 2021

dvioutのインストール
dvioutにおける小ヒント集 --- プレゼンテーションモード

目次

     0. はじめに

     1. プレゼンテーションモードを試してみましょう
        1.1.  プレゼンテーションモードへ
        1.2.  線画機能
        1.3.  サムネール機能
        1.4.  連結スクロール
        1.5.  反転表示
        1.6.  終了
        1.7.  非スクロール
        1.8.  自動表示
        1.9.  順次段階表示
        1.10. Cover Sheet

     2. プレゼンテーション用のDVIファイル
        2.1.  ソースの流用
        2.2.  文字を見易く (SliTeX)
        例：  連結スクロール, Cover Sheet, 表示制御, 自動表示
        2.3.  フォントや画像の埋め込み
        2.4.  プレゼンテーション用スタイルファイル

     3. プレゼンテーション中の操作
        3.1  キー・マウスの操作
        3.2  移動
        3.3  OHP２台に代わるもの

## 0. はじめに

1999年12月に米国でのバークレイのMSRI で開催された Workshop "The Future of Mathematical Communication:1999" では、多くの講演者がプレゼンテーション・プログラムを使っていました。

数式の取り込みに苦労している様子だったので、dvioutの側でプレゼンテーションに対応しようと思い立ち、Ver.3.11(February 2000) からプレゼンテーションモードを設けました。

dvioutのプレゼンテーションモードは、比較的新しい機能であり、その後も、実際の講演などで使用しながら改良を行っています。

ここには、dvioutのプレゼンテーション機能を使う場合のヒントを記します。

ここに書かれた機能を使う場合は、標準的にインストールされたdvioutのAugust 28, 2002 以降の日付の版をお使いください。

## 1. プレゼンテーションモードを試してみましょう

dvioutを使ってのプレゼンテーションは、大きく分けて

1. ページ毎に、各ページを一方向に（通常は縦に）スクロールして表示
2. 全てのページを縦に連結させて、仮想的に一つのページにして縦方向に連続スクロールして表示
3. 各ページを表示画面に一致させ、ページ毎に表示

の3種類考えられ、それぞれdvioutのプレゼンテーション向け機能を含む様々な機能を使って、目的に応じていろいろな工夫が可能です。このとき

1. TeX のソース/DVIファイル作成にどの程度労力を割くか？
2. プレゼンテーションの際にどの程度自動化するか？

がポイントとなります。

例えば、プレゼンテーションの完全自動化も可能です（dviout special を使って、タイマー機能や、プレゼンテーションを見ている人のキー入力を待っての条件ジャ ンプなどの機能が使える）。

- [ESC] がプレゼンテーション・モードと通常のモードとの切り替えスイッチです。
  ただし，通常は各種設定を行ってからプレゼンテーション・モードへ移行するキーや マクロを用います。
- プレゼンテーション・モードを抜け出すには、[Shift]+[F2] を用いるとよいでしょう（Ver.3.15以降）。
- プレゼンテーション・モードに自動的に入るマクロが書かれてあるページにおいては、[ESC] などではプレゼンテーション・モードから抜け出せないことがありますが、 次項のようにして dviout から抜け出せます。
- プレゼンテーション・モードでは、dviout の画面の上部の枠にあるメニューバーなどが表示されませんが、 通常と同じように [Alt]+[X] で dviout を終了できます。
- プレゼンテーション・モードの中では、[Shift]+[F1]でキー操作が表示されます（Ver.3.15以降）。

### 1.1. プレゼンテーションモードへ

ここでは、既にあるDVIファイルを流用して、プレゼンテーションモードを体験してみることにします。

そこで、既に作成済みの適当なDVIファイルを用意しましょう。 通常の A4 などのサイズの縦長用紙の横書きで、複数ページに渡る文書とします。 それを普通にdvioutで表示してから、次の操作を行います。

以下の1-1から書かれているように順に行うのを薦めますが、Ver.3.15 以降でとりあえず試してみるには、

- [Shift]+[F6] でプレゼンテーション・モードに入る。
- カーソルを画面右下に持ってると、メニューが表示される。メニューを引き出して、[+]や[-]ボタンなどを押して、いろいろ試してみるとよい。メニューが表示されないときは、[Shift]+[F12] を押す。
- プレゼンテーション・モードを [Shift]+[F2] で抜け出る。

1-1. 上部のメニューバーから Presentation → Cut edge を選び、紙面の周囲の余白をカットします。
1-2. まず [Esc] 続いて [6] のキーを押します。
なお、dviout Ver.3.14.3以降では、この2つの操作は、[Shift]+[F6] で実現されます。

これによって、紙面の周囲の余白を除いた部分が、Windowsの枠などを取り払って、画面の横幅いっぱいに表示されます。

> [Esc] は、プレゼンテーションモードと通常のモードとの切り替えスイッチで、[6] (Full) は表示画面いっぱいに紙面を表示するスイッチ（すなわち、「縦または横の一方のスクロールのみで紙面全体が表示できる」 という条件下で最も大きく表示する、というスイッチ）にあたります（dvioutのデフォルトのキー設定）。

通常の時と同じように紙面の上部・下部は矢印キーやマウスによる縦スクロールで移動できます。
たとえば、[Space] で次のページへ、[Back space] で前のページへ、というのも通常と同様です。
ルーペ機能なども使えます。

- Cut edge 機能では、文書の全ページに渡って（ページ領域を指定しているとき --- 始まりのページで [M] を、終わりのページで [R] を押すと指定できます --- は、その範囲で）、表示されている部分中の周囲の削ることの出来る幅を調べます。 残される周囲の余白は、Option → Setup Parameters... → Paper → CutEdge で調整できます。
- プレゼンテーションモードでは、マウスカーソルを右下端に移動するとメニューが現れて、 ページ移動や各種設定ができます。メニューを起動したり、種類を変えるのに [Shift]+[F12] や [+], [-] などのボタンが使えます（Ver.3.14.3以降）。
  左上端にメニューを置いたとき([-] ボタンが便利）を除き、カーソルがメニューの位置に来たとき以外はメニューが消えます。
  プレゼンテーションモード起動時の状態は、Presentation → Presentation Menu, Save Presentation settings で設定できます。
- プレゼンテーションモードでは、[Shift]+[F1] でキー操作が表示されます。
- プレゼンテーションモード中で表示位置を微調整するには、[Ctrl]+[Shift] のキーを押しながら、矢印キーを使います。

### 1.2. 線画機能

上記のプレゼンテーションモードで、線画機能を使ってみましょう。

1-3. [F12] を押すと、線画機能が有効になります（トグルスイッチ）。

1-4. [Shift] を押しながらのマウスの左ボタンクリックで始点を指定し（小さな十字が表示されます）、[Shift] を押しながらの右ボタンクリックで終点または通過点を指定します。マウスカーソルを移動して、順次 [Shift] を押しながら右ボタンクリックを行うと、折れ線が描けます。

1-5. [SHIFT]+[F11] を押すと、以降、指定した２点を結ぶ線分でなくて、２点を対角線とする矩形の枠が描かれます。試してみましょう。

Dec. 14, 2002以降の版の dviout では、上記でなくて [Shift]+[F12] を利用するのもよいでしょう。 [line] のメニューにします。

線画はページを変更すると消去されます。
デフォルトの線の色は赤ですが、それの変更や、線画の修正・消去などの機能は以下の通りです

>     F12:       線画機能のON/OFF（トグルスイッチ）
>     SHIFT+マウスの左ボタン: 始点の定義
>     SHIFT+マウスの右ボタン: 終点、端点の定義
>     CTRL+SHIFT+マウスの左ボタン: 最後の始点の変更
>     CTRL+SHIFT+マウスの右ボタン: 最後の終点、端点の変更
>     Delete:    最後の点、または線の削除
>     F11:       線の描画（デフォルト）
>     SHIFT+F11: 矩形の描画
>     SHIFT+F5:  赤（デフォルト）, なお、色は始点で定義される。
>     SHIFT+F6:  黒
>     SHIFT+F7:  青
>     SHIFT+F8:  緑
>     SHIFT+F9:  線を太く、または細くする。

### 1.3. サムネール機能

1-6. ここで、[9] のキーを押すと、16ページが縮小して表示されます。

- 縦スクロールのほか、前や後ろの別の16ページ表示に移動することができます（通常の表示の時と同様なキー操作）。

- [9] でなくて [8] を押すと、4ページが縮小して表示されます。

1-7. 表示したいページにマウスカーソルを移動して、マウスの右ボタンをクリックしましょう（Ver.3.17.4 以降は、左ボタンのダブルクリックでも OK です）。
その結果、そのページのプレゼンテーションモードでの表示に戻ります。

1-8. [5] のキーを押すと、（FULLのモード から FITのモードに変わり）ページがスクロールせずに表示される最大の大きさに変わります。[6] で元に戻ります。

### 1.4. 連結スクロール

ページ連結縦スクロールを体験するため、上のプレゼンテーションモードを [Esc] を押して抜け出ます。さらに、Presentation → Cut edge を選択して、そこのチェックをはずし、通常の表示に戻します。
Ver.3.14.3 以降では、[Shift]+[F2] でこの操作がなされます。

縦にページを連結して、文書全体を仮想的に一つのページのみからなるようにします。
そのため、以下のようにして、各ページのヘッダやページ番号の部分などを表示から削ることにします。

2-1. Display → Region → On で領域指定モードに入ります。
2-2. [Shift] を押しながらのマウスの左ボタンと右ボタンのクリックで、表示すべき領域を指定します。
2-3. Display → Region → Cut で、領域を切り出します。

2-4. Display → Y-two pages （または、[0] ）で、２ページを縦に連結します。
2-5. [Esc] でプレゼンテーションモードに入り、[6] を押して表示を横一杯に広げます。

Ver.3.14.3 以降では、[Shift]+[F1] でこの一連の操作がなされます。
このあとは、矢印キーやマウスによって縦スクロールを行うと、全頁が縦に繋がった仮想１ページとして表示していくことが出来ます。線画機能も有効です（２ページの間は、線画が保持されます）。

- 上記 2-2 で、[Shift] を押しながらマウスの左または右ボタンを再度クリックすれば、領域の修正ができます。

- 2-2 において枠が表示された状態でページを移動すると、各ページでの切り取られる範囲が確かめられます。

### 1.5. 反転表示

次に、白黒の反転表示をするため、[Esc] (or [Shift]+[F2]) でプレゼンテーションモードを抜け

2-6. Presentation → Presentation type → black screen を選びます。
2-7. [Esc], [6] （or [Shift]+[F6]) でプレゼンテーションモードに入ります。

### 1.6. 終了

プレゼンテーションモードから、dvioutを終了させるには、

- [Esc] （or [Shift]+[F2]）で通常のモードに戻ってから終了する。
- [Alt]+[X] or [Alt]+[F4] を押すと、直ちに終了する。

などがあります。ここでは、前者で終了してみましょう。

### 1.7. 非スクロール

他の多くのプレゼンテーションプログラムのように、スクロールを行わず、表示画面を紙面に一致させ、ページ単位で表示する。

そのためには、画面と縦横比が等しい紙面を用意し、[Esc] でプレゼンテーションモードに入って、[5] を押して、紙面全体を表示するようにすればよい。

> [5] （Fit）は、「紙面全体が表示画面に入る」という条件で、紙面を最も大きく表示するスイッチです。

ここでは、添付されたDVIファイルでのプレゼンテーションを試してみます。画面は、1024 x 768 dot の XGA の解像度にしておきます（不可能なときは、横のドット数と縦のドット数の比が、4:3 になるような画面を用いる）。

### 1.8. 自動表示

3-1. dviout のディレクトリの下の sample\slisampl.dvi のアイコンをダブルクリックする。
3-2. そのまま待っていれば、2ページの最後まで表示される。
3-3. [Alt]+[X] で抜け出る。

> 最後のページを表示してから、適当な時間後に先頭（あるいは、別のDVIファイル）へジャンプするように書いておけば、自動表示をループさせることができる。

> そのような例 special\demo.dvi があるので、そのアイコンのダブルクリックで表示してみよう。[Alt]+[X] で終了します。

### 1.9. 順次段階表示

3-4. dviout のディレクトリの下の sample\slisamp2.dvi のアイコンをダブルクリックする。
3-5. [Space] を押すことにより、一段階毎に表示が進行する。
3-6. 最後まで来たら、[Alt]+[X] で抜け出る。
3-7. 同様のことを sample\slisamp4.dvi でやってみる。

### 1.10. Cover Sheet

3-8. dviout のディレクトリの下の sample\slisamp3.dvi のアイコンをダブルクリックする。
3-9. [Space] を押すことにより、一ページ毎に表示される。
3-10. 最後まで来たら、[Esc] でプレゼンテーションモードを抜け出る。

3-11. 最初のページまで戻る（自動的にプレゼンテーションモードへ移行）。
3-12. [F5] を押して、Cover sheet で覆う。

3-13. マウスの左ボタンを押し下げると、上下矢印のカーソルがcover sheet の位置に現れるので、それをマウスで下に動かして、cover sheet を下げ、表題のページを全て表示する。
3-14. [Space]キーを一回、それで画面の文字が消えないときはもう一回押して、画面の文字を消す（次のページが cover sheet で覆われて表示されている）。
3-15. マウスの左ボタンを押し下げて、cover sheet を上下に動かしてみる。
3-16. [Space]キーによってcover sheetで覆われた最後のページへ移動し、マウスを使ってcover sheetを動かして最後のページを全て表示させる。

3-16. 表示された sample.dvi の部分をクリックして、別の文書表示に移動する（自動的に、プレゼンテーションモードから抜け出る）。

- sample.dviには、プレゼンテーションモードの解説がありますので、読んでみるとよいでしょう。

- Cover sheet で覆うのは、下部（デフォルト）、右部、左部、右下部、左下部の5種のモードがあります。

なお、縦長紙面を Cover sheet と縦スクロールとで表示するには以下の手順がよいでしょう。

1. （Alt+NCO で) Cover sheet On とし、さらに、Alt+NC(R) で、On for Pause のチェックを外しておく。Alt+NV の Cover type は、デフォルトの bottom であるとする。
2. [Shift]+[F6]（= [Alt]+[D][G][N], [Esc], [6]）でプレゼンテーションモードへ入る。
3. 画面は cover sheet で覆われた状態なので、マウスの左ボタンを押し下げた状態で、右ボタンクリック後（両矢印のカーソルで）、そのまま下にマウスを動かすことにより cover sheet を除いていく。
4. スクリーン全体から cover sheetが除かれたら、[Space] を押し（これにより、スクリーンから見えない先の部分からもカバーシートが取り除かれる）、スクロール（矢印キーやマウスによる）によって、そのページの最後まで表示する。
5. [Space] を押すと、画面が消されるので（= 次のページ先頭が cover sheet で覆われた状態）、以下上記のように
   cover sheet の移動 → [Space] → スクロール → [Space] → ... と繰り返す。
6. 最後のページの表示が終わったら、[Alt]+[X] または [Shift]+[F2] で抜け出す。

なお、上記 [Shift]+[F6], [Shift]+[F2] は、Ver.3.14.3 以降のキー機能のデフォルトです。

## 2. プレゼンテーション用のDVIファイル

プレゼンテーション用のDVIファイルを作成するにあたって、以下のことがポイントとなるでしょう。

- プレゼンテーション用の初期設定の自動化
- プレゼンテーション中の操作が簡単になるようにする
- 文字を適当な大きさで綺麗に表示する

たとえば、1.4. 連結スクロールなどのほとんどの初期設定は、 DVIファイルに埋め込んでおくことができます。

### 2.1. ソースの流用

論文や報告書のLaTeX2εのソースをプレゼンテーション用に流用することを考えてみます。
以下の例のようにすると、自動的に連結スクロールで使えるようになります。

      \documentclass[...]{...}
      \usepackage{....}
      \AtBeginDvi{\special{dviout !A!zdy!pdl;!b}}
      \pagestyle{empty}
      ...
      \begin{document}
      \maketitle\thispagestyle{empty}
      ...

上記の `\pagestyle{empty}` は、ページのヘッダやページ番号をつけないことを意味します。
`\thispagestyle{empty}` は、タイトルページも同様の設定をすることを意味します。

`\AtBeginDvi{...}` は、DVIファイルの先頭に `{...}` を置くことを意味し、dviout specials の中身の意味は

> !A
>   画面の書き換えの表示への反映を止める
> !z
>   Display → Cut edge
> dy
>   Display → Y-two pages
> !p
>   プレゼンテーション・モードへ移行
> dl
>   [6] (Full)
> ;
>   上記の処理が終了するまで待つ
> !b
>   書き換えた画面の表示を再開する

より詳しくは、dvioutのOn-line Help のdviout specialsの項や、 Help → Key table を参照してください。

Cut edge機能を使わず、切り取る位置を直接指定するには、たとえば

      \AtBeginDvi{\special{dviout -y=F18.6cm:26.5cmP -OX=2cm -OY=2.5cm !Ady!pdl;!b}}

などのようにします。

- 切り取り位置については、Display → Region → On を使って実際に切り取ってテストし、適当な値を　Setup Papameters... →　Paper または Option → Non-default Parameters から得るのがよいでしょう。
  このテストのときは、プレゼンテーションモードに自動的に入らないように、Option → dviout specials のチェックを外しておくか、あるいは、上記の `\AtBeginDvi{...}` の部分をコメントアウトして生成したDVIファイルを使います。

- `-y=` では、（切り取られた）紙面の縦と横のサイズを定義し、`-OX=`, `-OY=` では、紙面の横と縦の位置の補正（= 切り取る左上の位置）を定義します。長さの単位は、cm, mm, in, dot/dpi などが使えます。

- 使用するフォントは、拡大・縮小が自由に出来るWindows のTrueTypeフォントがよいでしょう。

- dviout specials の中で、`-t=2` などと指定することによって、矢印キーによるスクロールの滑らかさが変更できます。

### 2.2. 文字を見易く (SliTeX)

OHPの原稿作成用のSliTeXは、LaTeX2εにおいて slides クラスとして実現されていて、OHP の原稿作成などに用いられています。SliTeXでは、サンセリフ体でなくて線が太い独自のフォントが使用され、標準のフォントのサイズも20ポイント、と見易さを主眼として作成されています。

これをdvioutのプレゼンテーションモードで使用する場合、SliTeXの標準のフォントに対して、WindowsのTrueTypeでないPKフォントを使用するとすると想定されるので、縮小が整数分の１になるように工夫すると、より綺麗なgray scale表示が得られます。これは以下のことに関連します。

- dvioutにおけるpreviewは、元の解像度を整数分の１に縮めるgray scale表示を用いて、画面の本来の解像度での白黒２値の場合より綺麗に表示しています。
  Help → Information で

        dpi: 300/4 x 300/4

  となっていたら、4x4=16 dots を明るさの異なる一つの点として 300dpi の紙面の画像の縦横を 1/4 に縮めて 75 dpi (= 75 dots/inch) の解像度で表示していることを意味します。

- プレゼンテーションモードでは、以下のように、整数倍とは限らない拡大・縮小を行って、紙面の表示画面への調節を行います。

  たとえば、1/2.7 に縮める必要があるとすると、1/0.9 に拡大した文字画像を用いて、縦横 1/3 に縮めた gray scale 表示を行います（dvioutでは、高速性などの理由から、整数分の１の gray scale のみが可能です）。
  同様に 1/4.2 に縮める必要があるときは、1/1.05 に縮小した文字画像を用いて、縦横 1/4 の gray scale 表示となります。
  具体的には、dvioutの `-bmp`, `-e`, `-varf` の3つのパラメータを用います（プレゼンテーションモード中で、[Ctrl]+[Q] で示される）。

  1/0.9 に拡大、あるいは、1/1.05 に縮小した文字画像は、Windows の TrueType フォントを使う場合は、直接そのサイズの文字画像を取得して用います。それに比べてPKフォントなどの固定サイズフォントの場合は、元の文字画像をdviout内部で拡大・縮小したものとなりますので、品質が多少劣ります。

slidesクラス

を用いて、連結スクロールを使う例

      \documentclass[leqno]{slides}
      \usepackage{graphicx, color, amsmath, amssymb, amsfonts}
      \AtBeginDvi{\special{dviout -dpi=180 -y=F1024dot/90dpi:30in !Ady!pdl;!b}}
      \textwidth=11.2in    \textheight=29.6in
      \hoffset=-0.8in      \voffset=-1.2in
      \pagestyle{empty}
      \title{...}
      \author{...}
      \date{...}
      ...
      \begin{document}
      \maketitle\thispagestyle{empty}  % 表紙
      %\begin{slide}
      ...                              % 本文
      %\end{slide}
      \end{document}

上記は、XGA (1024 x 768 dot) の画面での表示を念頭においています。

- 横幅は画面サイズに合わせるので、300dpi の元の紙面を縦横 1/2 倍した gray scale 表示となります（横幅、`2048dot/180dpi` を半分に縮小して、`1024dot/90dpi` としている）。

  紙面の縦サイズ `30in` は、（縦スクロールを用いるので） 適当な値で問題ありません。
  大きい方が、ページ中の行間の調整が取り易い、スクロールがより滑らか （表示では２ページ毎に管理する）というメリットがありますが、余り大きくすると コンピュータの負担が重くなります。

- 上の指定で、`1024dot/90dpi` は長さを表すので、`11.378in` と書いたものと等価です。

- 全ページを縦に連結して表示するので、（slides クラスにおいて） ページを定義する `\begin{slide}`, `\end{slide}` は不要です。

指定を変更して

      \AtBeginDvi{\special{dviout -dpi=360 -y=F1024dot/90dpi:30in !Ady!pdl;!b}}

とすると、1/4 x 1/4 の gray scale になります。また

      \AtBeginDvi{\special{dviout -dpi=300 -y=F1024dot/100dpi:27in !Ady!pdl;!b}}

とすると、(1024/90 > 1024/100 なので）表示される文字が大きくなり、１行の文字数が変わります。このときは、\textwidth などの値も変更が必要です。

- PKフォントを使う上記の場合、`-dpi=` で指定した解像度のPKフォントが生成されます。

- `\hoffset`, `\voffset` で表示位置を調整し、`\textwidth`, `\textheight` で紙面サイズを調整します。

- プレゼンテーションモードの（特に仮想１ページを使う）場合、いくつかの（dviout specialsを含む）dvioutの機能と両立しないことがあります。dvioutでは多くの機能をユーザに解放し、組み合わせによっては不具合の可能性がある場合もdviout側からは禁止していないことがあり、望み通りの結果にならないこともありますのでご了解下さい。

Cover Sheet

を使う例 一方、紙面を表示画面に一致させる場合は

      ...
      \AtBeginDvi{\special{dviout -dpi=300 -y=F1024dot/100dpi:768dot/100dpi !AN5NO!pdndf;!b}}
      ...
      \begin{document}
      ...
      \begin{slide}          % ページの始まり
      ...
      \end{slide}            % ページの終わり
      \begin{slide}          % ページの始まり
      ...
      \end{slide}            % ページの終わり
      \end{document}

などと上の例を修正し、各ページを `\begin{slide}` と `\end{slide}` で囲って定義します。

ここでは、各ページが cover sheet で覆われた状態で表示され、マウスの右ボタンを押し、マウスカーソルを使って cover sheet を下方に動かし、その後 [Space] キーで次のページへ進む、というプレゼンテーションを想定しています。dviout specialsには

> N5
>   cover type : bottom（下部を覆う．横書き用）
> N7
>   cover type : left（左部を覆う．縦書き用）
> N0
>   general screen
> NO
>   cover sheet ON
> NP
>   ON for pause（= 区切りの無いページは、cover sheet を開いた状態で始める）
> dn
>   線画機能 ON
> df
>   [5] (Fill)

などを使います。

ページを定義し、その途中に区切りをつけて、[Space]キーで区切り毎に表示を進行させていくには

      ...
      \AtBeginDvi{\special{dviout -dpi=300 -y=F1024dot/100dpi:768dot/100dpi !AN5NP!pdf;!b}}
      \def\pause{\special{pause}}
      ...
      \begin{document}
      \begin{slide}          % ページの始まり
      ...
      \pause          　　   % 区切りの挿入
      ...
      \end{slide}            % ページの終わり
      \begin{slide}          % ページの始まり
      ...
      \end{document}

のように、 `\begin{slide}` と `\end{slide}` で囲って定義した各ページの中の適当な（段落の）切れ目の部分に `\pause` を挿入します。

> 一般に、紙面の縦横比を表示画面の縦横比と一致させて、プレゼンテーションモードで[5]（Fit) を押せば、紙面が表示画面と一致する。

> Windows の TrueType フォントのみを用いているときは、整数分の１で縮小を行わなくても、文字品質が落ちることはないので、作成される文書の紙面の縦横比のみに注意すればよい。

> この場合、例えば XGA (1024 x 768), SVGA (800 x 600) などでは 4:3 なので

>       -y=F16cm:12cmP

> などの指定でよい（`-y=XGAP` などでもよい）。なお、SXGA(1280 x 1024) では、5:4 となる。

自動表示

の例 cover sheet を使った上記の例において、[Space] を押すキー操作をdviout specialによってDVIファイルに埋め込むと、自動表示が可能になります。例えば、

      \documentclass{slides}
      ...
      \AtBeginDvi{\special{dviout -dpi=300 -y=F1024dot/100dpi:768dot/100dpi !AN5NP!pdf;!b}}
      \def\pause{\special{pause}}
      ...
      \begin{document}
      \begin{slide} % 最初のページ（この例では2つの \pauseを含む）の始まり
      ...
      \pause  % 区切りの挿入
      ...
      \pause  % 区切りの挿入
      ...
      \special{dviout `timer 5000 je} % 最初の \pause で5秒待つ
      \special{dviout `timer 5000 je} % 次の \pause で5秒待つ
      \special{dviout `timer 10000 je}% さらに10秒待って次のページへ
      \end{slide}   % 最初のページの終わり
      ...
      \begin{slide} % 最後のページ（この例では、\pause なし）の始まり
      ...
      \special{dviout `timer 20000 jt}% 20秒待って最初のページへ
      \end{slide}   % 最後のページの終わり
      \end{document}

ここでは、さらに以下のdviout specialsが参考になります。

> `je`
>   [Space]
> `jt`
>   [Ctrl]+[Home], 最初のページへジャンプ
> ``timer xx`
>   次のdviout specialsを実行するまで `xx`/1000 秒待つ
> ``href` yy:zz
>   HyperTeX special の `\special{html:<a href="yy:zz">}` を実行する

各ページで `\pause` の個数とおなじ回数 [Space]キーを押すとそのページが全て表示され、さらにもう一度 [Space]キーを押すと次のページに進みますが、それを自動的に行っています。

> - 各ページで定義されたdviout specialsは、定義された順に解釈され、 ページ移動が起きるとクリアーされます。

> - dviout specialsのコマンドで、2文字で先頭文字がアルファベットか `!` のものはキー操作に対応し、その表は Help → Key table で得られます（[ ]の中の2文字）。
>   大文字で記述したものは解釈時に実行され、小文字で書いたものは、順に実行すべき操作のリストの最後に付け加えられます。

>   一方、先頭が `-` のものはパラメータの設定を、 ``` のものは特殊なコマンドのキーワードを示します。

たとえば、以下のように定義を工夫すると、ソースはより簡単に書けるでしょう。

      \documentclass{slides}
      ...
      \def\pause{\special{pause}\special{dviout `timer 5000 je}} % 各\pauseで5秒待ち
      \def\startpages{\begin{slide}}
      \def\nextpage{\special{dviout `timer 8000 je}\end{slide}\begin{slide}} % 8秒待って次ページへ
      \def\endpages{\special{dviout `timer 10000 jt}\end{slide}} % 10秒待って最初のページへ
      ...
      \begin{document}
      \startpages   % 最初のページの始まり
      ....
      \pause
      ....
      \nextpage     % 次のページへ
      ...
      \pause
      ...
      \endpages     % 最後のページの終わり
      \end{document}

また HyperTeX と併用すれば

      \special{dviout `href file:foo.mid}

は、`foo.mid` という音楽を鳴らすこと

      \special{dviout `href file:foo.dvi}

は、`foo.dvi` の表示に移ること、というような指定ができます。

この機能を使うと、「解説の音声」を入れた自動プレゼンテーションや、「英語の文章を表示しながらそれを読み上げる」というようなプレゼンテーションも簡単に実現できます。

なお

      \def\nextpage{\end{slide}\begin{slide}}
      \def\endpages{\end{slide}}

と変更すると、自動表示ではないものが、一方

      \def\pause{}
      \def\startpages{}
      \def\nextpage{}
      \def\endpages{}

として、`\AtBeginDvi{...}` も修正すれば、 連結スクロール用のものが作成されます。

表示制御（dviout special `+ ）を使う例

表示の各ページの中身に対して、その時のレベルに応じて表示、非表示を切り替える dviout special `+ を用いて、[Space]キーによって順次表示していくプレゼンテーションです。

- レベル 0 から始まり、[Space]を押していくと、そのページのレベルが一つずつ増える
- そのページで定義された最大のレベルに達したあと、[Space]をさらに押すと、次のページが レベル 0 で表示される
- 前に戻ったり、離れたページにジャンプした場合、そのページを十分大きいレベルで表示する
- \special{dviout `+levels} とによって、そのページのそれ以降を表示するレベルを指定する（Ver.3.17.4以降）。levelsは、例えば以下のように書く

  > 1, 3
  >   1 と 3
  > 1-3
  >   1 から 3 まで
  > 3-
  >   3 以上
  > -3
  >   0 以上 3 まで
  > M
  >   それまでそのページに現れた最大のレベル＋1
  > MM
  >   それまでそのページに現れた最大のレベル＋2
  > m
  >   それまでそのページに現れた最大のレベル
  > mm
  >   それまでそのページに現れた最大のレベル－1

  M や m を複数個並べたものも同様に定める。

よって、TeX のソースに

      ....
      \special{dviout `+M-}
      ....
      \special{dviout `+M-}
      ...

とあれば、\special{dviout `+M-} を \special{pause} としたものと [Space] を押していくとき、ほぼ同様の表示をする。ただし前者は画面上である部分以下を隠すが、後者はソース上のそれ以下の部分を無視するという違いがある。

      ...
      \special{dviout `+1-}
      ...
      \special{dviout `+0-}
      ...

とあれば、最初表示されなかった真ん中の . . . の部分が、[Space] を押すと現れる。

     I am a \special{dviout `+0}dog.%
     \llap{\special{dviout `+1-}cat.}\special{dviout `+0-}

とすると、「I am a dog.」 と表示されていたものが [Space] を押すとレベルが 0 から 1 になって 「I am a cat.」 に変わる。

      \documentclass{slides}
      ...
      \AtBeginDvi{\special{dviout -dpi=300 -y=F1024dot/100dpi:768dot/100dpi !AN0!w!p;!b!0df}}
    　...
      \begin{document}
    　...

などとすればよい。関連するdviout specialsは

> !0
>   dviout special `+[levels] を有効にし、レベルは 0 にリセットする。
> !1
>   dviout special `+[levels] を無効にし、レベルは 0 にリセットする。

関連するキー操作は

> [Space]
>   １ステップ進む
> CTRL+N
>   reNew: level を 0 に戻してそのページを再表示する
> CTRL+U
>   dviout special `+[levels] を有効にする（つぎの再表示から有効）
> CTRL+V
>   dviout special `+[levels] を無効にする（つぎの再表示から有効）

なお、メニューの Stop CTRL で、この表示制御の有効／無効を変更できます（CTRL+U/CTRL+V CTRL+N）。

### 2.3. フォントや画像の埋め込み

画像や特殊なフォントを使う場合、それらをDVIファイルに埋め込んでおけば、それらがない 環境においても、dvioutを用いたプレゼンテーションを行うことができます。詳しくは、 DVIファイルにフォントや画像を埋め込むや、On-line Help の「目次 → DVIファイルへの埋め込み → フォント／画像の埋め込み」を参照してください。PKフォント、TrueTypeフォントのどちらも埋め込むことができます。

### 2.4. プレゼンテーション用スタイルファイル

LaTeX2e では，slideクラスによってプレゼンテーション用に1ページずつ表示画面を作ることができます．

      \documentclass{slides}

これを拡張し，背景画面の設定や dviout での段階表示などの特殊機能を取り入れた jslidesパッケージが乙部氏により作成され公開されています。
これを利用すると美しいプレゼンテーション用のファイルが容易に作成できます。

## 3. プレゼンテーション中の操作

### 3.1. キー・マウスの操作

・ プレゼンテーションは、キーまたはマウスの単純な操作で進行できるようにしておくことが望まれます。 プレゼンテーションモードでは、[Shift]+[F1] でキー操作の一覧が表示されます。

・ Option → Setup Parameters... → Key で、任意のキーにコマンドなどの操作が定義できます。 マクロ機能を使うと、パラメータ変更などの一連の機能も一つのキーに定義できます。

・ [Space]キーのみで進行するように準備されてあったとしましょう。
[Space]キーの役割を、マウスの右、または左ボタンに割り当てることができます（Presentation → Use Mouse Button → Left/Right あるいは dviout specialsでは、TL/TR に対応）。

> マウスボタンの機能は、プロジェクターのリモートコントローラで代替できるものが多いので、 この設定を使うと、プロジェクターのリモートコントローラの操作のみでプレゼンテーションを進めることができます。

（デフォルトでは）マウスを画面の左下端に動かしたときに現れるメニューの [ > ] ボタンをクリックして、プレゼンテーションを進めることができます。一方、[ < ] ボタンによって前のページに戻ります。

・ 矢印のマウスカーソルは、OHPを使ったプレゼンテーションにおけるレーザポインタの役割をします。マウスをしばらく(= 2 sec)動かさないままにしておくと、矢印カーソルは消えますが、マウスを動かしたときに再表示されます。

・ Cover sheet 用の両（or 四方）矢印カーソルは、マウスの左ボタンを押すと、あるいは、左を押しながら右をクリックすると表示されます。前者は、紙面全体が表示されている場合です。

> 紙面全体が表示されていない場合は、マウスの左ボタンのみを押すと手の形のカーソルになり、紙面の表示部分のスクロールができます。

・ プレゼンテーション・モードでのメニュー・ダイアログは、[Shift]+[F12] やメニューの[+] ボタンで変えられます。左上端にあるとき以外は通常消えていて、カーソルがその位置に来たときのみ現れ、邪魔になりません。
Presentation → Presentation Menu のチェックが On になっていれば、プレゼンテーション・モード起動時にメニューが有効です。
Presnetation → Save Presetation settings により、このチェックの On/Off およびメニューの形状や位置などの現在の状況を次回以降のdviout起動時のデフォルトに設定できます。

### 3.2. 移動

・ ページを指定した移動をするには
[Space]キーなどで次ページ、[Back space] で前ページ、[Ctrl]+[Home] で先頭ページ、[Ctrl]+[End] で最終ページへ、などという移動は通常と同じです。 同様に、[/] に続いてページ番号を入力して [Enter] を押すページ番号指定の移動機能が使えます。たとえば、

      / + 3 [Enter]

とすると、2ページスキップして3ページ後のページへの相対ジャンプができます（上記で + をつけないと、先頭から3ページ目を意味します）。

・ あらかじめ決まっている箇所や文書に移動するには、 HyperTeX の機能を使うと便利です。
添付のmyhyper.styを使った場合は

      ...
      \usepackage{myhyper}
      ...
      \name{thm1}{Theorem~1}
      ...
      It follows from the preceeding \goto{thm1}{theorem} that
      ...
      ... \href{foo.dvi}{FOO} ...
      ...
      ... \href{reference.doc}{reference} ...
      ...

などとすると

theorem と表示された部分を マウスの左ボタンでクリックすると、"Theorem 1" の部分にジャンプします。
その後、[Shift]+[F] を押すと、もとの theorem の部分に戻ります。

FOO と表示された部分を同様にクリックすると、 foo.dvi の表示に移ります。その後、[Shift]+[F] を押すと、 元のファイルの元の位置に戻ります。

reference と表示された部分をクリックすると、Microsoft Word が起動されて、Microsoft Word の文書 reference.doc が表示されます。

> [Shift]+[F] の代わりとして、[<] でも同じです。

> reference.doc の部分は、拡張子がシステムに登録されているファイル（*.avi, *.wma, *.exe など、実行ファイルも可、アクセス可能なインタネット上にあってもよい）を指定できます。

・ 表示中のドキュメントの離れたページに移動するには
プレゼンテーション中に質問を受けて、以前のページを参照しなければならないことがあります。ページ数の多い文書ではその箇所を捜すのが大変なことがあります。
このようなときは [9] を押して、16ページずつの同時表示画面（サムネール機能）に移り、該当のページをマウスの右ボタンでクリックすればそのページに移動できます。戻るのも同様な方法で可能です。 戻るには、マークを付けておく以下の方法も使えます。

・ 位置をマークしておいて、後からそこに移動するには
[M] で位置をマークしておき、後から [Ctrl]+[G] でマークした位置にジャンプします。 ジャンプ前の位置に戻るには、[Shift]+[F] を押します。

・ 別のページに移動して戻って来るには
[M] で現在の位置をマークし、移動後 [Ctrl]+[X] によって元の位置に戻り、移動した先とマークを交換します。再度の [Ctrl]+[X] で、両者間での移動となります。

・ 別のDVIファイルに移動して戻って来るには
HyperTeX や [Alt]+I, [Ctrl]+[O] などから別の DVIファイルを表示します。その後、[Shift]+[F] (または、[<])で元のDVIファイルに戻ります。[Shift]+[L]（または、[>]）では、再度そのファイルへ移り、[Shift]+[F] (または、[<]) で戻ります。

・ 移動後の初期化や再設定
他のファイルに移っての移動などで、プレゼンテーションの設定の初期化や再設定が必要なことがあります。
これらはキー操作で可能ですが、マウスを右下端に移動したときに現れるメニューから行うこともできます。
キー操作を忘れたときは、[Shift]+[F1] でその一覧が表示されます。

### 3.3. OHP２台に代わるもの

OHPを使うプレゼンテーションでは、OHPを2台使用して、一つ前のシートも表示しておくことがあります。

コンピュータからのプロジェクターによるプレゼンテーションとOHPによる表示とを同時に使うことが出来る場合は、両者を同時に使って同様のことが可能でしょう。 OHPのシートの内容は、プレゼンテーション用に作成したものが流用できるでしょう。

目次へ
誤りや補足すべき点があればお知らせ下さい --> dviout@tug.org