本稿は Linux Japan 誌 2001 年 1 月号に掲載された
ト設定をしていなければいけません (2000 年 5 月号の,
筆者の記事 Tgif のフォント設定のところで説明しまし
記事に補筆修正したものです.
た) ので却って面倒かもしれません.
Linux でプレゼンテーション II
数式
引き続きプレゼンテーション関連のツールをとりあ
げます.前回の LaTeX ではプレゼンテーションに用
さて,数式ですが USAGE.jp にあるように filter で
いる OHP 原稿を作成するにとどまりましたが,今回
指定したスクリプトを用いて EPS 画像に変換して貼り
は,プレゼンテーション自体を実行するツールです.最
付けます (図 1).数式を綺麗に表示するツールには,ご
も有名な MagicPoint の概略に加えて筆者の偏愛する
存知 TeX と,古いですが roff の eqn があります.も
Tgif のスライドショー機能を紹介します.
ちろん eqn は表示できる数式に限界があり,数式なら
なんでもござれの TeX には敵いません.しかし,古
MagicPoint
いもの好きな筆者は敢えて eqn もとりあげたいと思い
ます.
UNIX のプレゼンテーションツールの定番 MagicPoint の公式ページ [1] W3 をみると,詳しい解説はな
く日本語・英語のサンプルとギャラリーだけが内部リ
ンク項目にあるだけとなっています.つまり,サンプ
ルを見れば誰でも簡単に使うことができるということ
でしょう.実際には配布されるマニュアル USAGE.jp
をみてサンプル sample-jp.mgp で確かめるということ
になるでしょう.
TruType フォント
このツールの性格上,なるべく綺麗なフォントを使
いたいものです.とくに大きい文字の表示にはスケー
ラブルフォントが欠かせません.英字に関しては元来
Type1 が扱えますし,日本語に関しては VFlib 経由で
種々のフォントが使えます.また,最近では FreeType
の経由での TrueType 利用も可能となっています.例
えば default の設定ファイル
¨
¥
/usr/X11R6/lib/X11/default.mgp
§
¦
には,”standard” フォントなどを定義している行に,
xfont と vfont と tfont (場合によっては tmfont) を設定
しています.xfont は英字のフォント, vfont は VFlib
図 1 MagicPoint では,数式は EPS 画像に変換して取
り込む.
pLaTex による数式画像の生成
MagicPoint のソースを展開すると,contrib 以下に,
Sylvain Pion([email protected]) 氏が考案し
たスクリプト tex2eps があります.このスクリプトは
LaTeX でなく TeX を起動することになっており,ち
ょっと使い難いので,筆者が少し手を加えたものを以
で扱える日本語フォントを指定するので,普通問題な
下に示します.LaTeX を使うので,スクリプト名も
いのですが,tfont の arial.ttf など (英字の TrueType
latex2eps.sh としました.
フォント) は X11 のパッケージに入ってないので別途
入手する必要があります.TeX の cms10.ttf (CTAN
の/fonts/cm/ps-type1/bakoma から入手できます) に
置き換えても良いという指示もありますが,’<’ や ’>’
が文字化けしますし,英字に関しては Type1 でもま
あ十分ですから,設定を除いてしまうのが一つの方法
でしょう.もっとも xfont で指定した ”helvetica” で
Type1 のものが呼ばれるように X11 の全体のフォン
1
リスト 1 latex2eps.sh
¨
¥
#! /bin/sh
tmp=$1
echo ’\documentclass[a5paper]{article}’ >$tmp.tex
echo ’\begin{document}’ >>$tmp.tex
echo ’\thispagestyle{empty}’ >>$tmp.tex
cat >>$tmp.tex
echo ’\end{document}’ >>$tmp.tex
platex $tmp.tex > /dev/null 2> /dev/null
dvips -q -E $tmp.dvi -o $tmp.eps
/bin/rm -f $tmp.tex $tmp.log $tmp.dvi
§
§
¦
ありますから省略できません.filter に gnuplot を使
い,グラフを作成して ImageMagick の display で表示
させる例も最後に示しました.
リスト 3 eqns.mgp
¨
eqn による数式画像の生成
UNIX 発祥の頃より既に,数式の整形出力のツール
がありました.roff の前処理として tbl(表の整形) と供
に有名な eqn です.今となっては,man の裏で使われ
る以外に意識することもありませんが,十分な機能が
あります.これも contrib 以下にスクリプトがあるの
¥
%include "default.mgp"
%default 4 fore "yellow", font "standard"
%default 1 leftfill, size 2, fore "salmon",
back "white", font "thick",
<-- 実際は 1 行
bimage "green-bg.jpg" 1024x768 <-- 実際は 1 行
%%%%%%%%
%page
数式を動的に生成する
TeX のソースから EPS 画像を自動生成して貼りつけます.
ですが,ps2epsi ではビットマップができませんでした
ので,少し遠回りですが eqn で dvi ファイルを生成し,
“dvips -E -V” でフォントを埋め込んだ EPS ファイ
ルを生成するように書き換えました.
リスト 2 eqn2eps.sh
¨
¥
§
¥
mgp -g 800x600 eqns.mgp
で確かめてください.空白行が目立ちますが,意味が
¦
#! /bin/sh
tmp=$1
echo ’.EQN’ > $tmp.eqn
echo ’.EQ’ >> $tmp.eqn
cat >> $tmp.eqn
echo ’.EN’ >> $tmp.eqn
groff -Tdvi -e $tmp.eqn > $tmp.dvi
dvips -E -V $tmp.dvi -o $tmp.eps &>/dev/null
/bin/rm -f $tmp.eqn $tmp.dvi
¨
%filter "latex2eps.sh eqn1"
\begin{displaymath}
\frac{1}{\sqrt{2\pi}}\int_0^{\infty}
\frac{e^{-x}}{x+1}\,dx
\end{displaymath}
%endfilter
%center, image "eqn1.eps" 300x240
%left
Groff の前処理 eqn を使って式を生成し貼りつけます.
¦
%filter "eqn2eps.sh eqn2"
int from 0 to inf x sup 2 over
{ ax sup 4 + 2bx sup 2 + c} dx
= pi over {2 sqrt {2a ( b + sqrt ac )}}
%endfilter
%center, image "eqn2.eps" 300x200
%%%%%%%%
%page
フィルタの活躍
%left, fore "white"
透明な背景も理解します.大きさも可変.
%center, image "pengwatch.gif"
0 50 50 1, cont
%left
Gnuplot でグラフを作成し,display で表示.
%filter "gnuplot"
set term pbm
set out "plot.pbm"
plot (sin(x)/x)**2
%endfilter
%center
%xsystem "display -geometry %35x35 plot.pbm"
%%%%%%%%
図 2 外部コマンドを filter として使える.マウス中ボタン
で書き込が可能なモードに移れば落書もできます.
後は USAGE.jp に説明があるように *.mgp ファイ
§
ルに記述すれば数式画像が貼り込めます. 図 1,2 を生
成する mgp スクリプトを以下に示します.
2
¦
積が決まってしまいます.Tgif の用紙の解像度は 50
背景画像について
背景を描くには二つのコマンドがあります.グラディ
エーションのかかった背景を生成する “bgrad” と,画
像ファイルを背景に読み込む “bimage” です.リスト 3
では bimage を用いています.bgrad は,sample ディ
レクトリの gradation-jp.mgp を見ればすぐに理解でき
ます.単に
¨
¥
pixel/cm ですから 1024x768 では 20.48cm x 15.36 cm
に用紙を設定すると丁度ルート画面いっぱいとなる計
算です.スライドを作成するにあたっては,この用紙設
定を最初に実行すると後が楽になります.
「レイアウト
→ スタック・ページ操作 → 用紙サイズ設定」を順に
選択して,ダイアログに対し x の両側には必ずスペー
スを入れて用紙サイズを入力してください.
%page
%bgrad
§
¦
とすると,上から下に向かって青から黒に変化する背
景が描かれます.ページ毎に %bimage と %bgrad を使
うことができますが,品がなくなるでしょうね.
書き込み機能
講演時には,時々ある部分を強調する必要が生じま
す.そんな場合には,マウスの中ボタンで,書き込みで
きるモードに移行しましょう (トグル切替えです).左
ボタンを押しながら,ドラッグすればフリーハンドで
線が描けます.ページを前後するとこの書き込みは消
えますし,もちろんソースに保存されることもありま
せん.
Tgif のスライドショウ
¤
¡ ¤
¡ ¤ ¡
Tgif は £Ctrl ¢+ £Alt ¢+ £8 ¢ によりスライドショウに
移行します.スライドショウには,フリーハンドモード
とハイパースペースモードの2つのモードがあり,前
者がデフォルトでフリーハンドのペンを使った書き込
みが可能です.ハイパースペースモードには,マウス
の右ボタンでメニューを呼び出して切替えます.この
モードではペン書きはできません.その代わり,ハイ
パーリンクが可能となります.また,つぎのように設
定しておくと
¨
¥
Tgif.AllowLaunchInHyperSpace:
true
§
¦
外部コマンドの呼び出しも可能となります.いずれの
図 3 スライドーショーの実行例 (上図):フルスクリーン表
モードでも,左右カーソルキーによりページが切り替
す.編集画面 (下図) とみた目が同じなのは当然.
示なので,afterstep の wharf ボタンが右上に見えていま
えられます.
ページの追加,テンプレートの活用
用紙の設定
ページの追加・削除は「レイアウト → スタック・ペー
スライドショウではフルスクリーンを使います.起
動時の -geometry オプション等による制御はできませ
ジ操作」のサブメニューに項目があります.また,
「ファ
ん.したがって X のルート画面に応じて表示される面
イル → テンプレート設定」を行うと,全てのページに
テンプレートが用いられます.枠や色付きのページレ
3
イアウト (オブジェクトはロックしておくといいです)
外部コマンドの起動:launch
を用意しておきましょう.あとは図や文字をレイアウ
Tgif から外部コマンドを起動するには,オブジェク
トに属性を付けて launch 関数を使うように編集しま
す.まず,内容となるテキスト
¨
¥
トして行きます.マウスを使って,最終表示画面をそ
のまま編集できますので,細かい説明は省略します.
launch=kterm -e man tgif
§
¦
を書きます.続いて,起動ボタンとなるオブジェクトを
¤
¡ ¤ ¡
描きます (任意のもの).両者を選択して £Alt ¢+ £a ¢と
数式
さて数式ですが,Tgif は基本的には XPM 画像を
扱いますから,この形式の画像を出力するスクリプト
すれば,オブジェクトに属性が付与されます.あるい
を考えればよいことになります.MagicPoint のものに
はメニューで「スペシャル → 属性」からも選択できま
ちょっと手を加えて次のようなスクリプトにしました.
す.実行させるには Shift キーを押しながらマウスの中
白黒を反転して,黒地を透明にしたいわゆる白抜きの
ボタンをクリックします.
数式を出力します.もちろん,用紙は濃い目の色が付
いているという想定です.
リスト 4 latex2xpm.sh
¨
書き込み
¥
#! /bin/sh
tmp=$1
を呼び出して色も変えられます.ただし,これはオブ
echo ’\documentclass[a5paper]{article}’ >$tmp.tex
echo ’\begin{document}’ >>$tmp.tex
echo ’\thispagestyle{empty}’ >>$tmp.tex
cat >> $tmp.tex
echo ’\end{document}’ >>$tmp.tex
platex $tmp.tex
dvips -y 5000 -E $tmp.dvi -o $tmp.eps
convert -negate $tmp.eps $tmp.pbm
convert -transparency black $tmp.pbm $tmp.xpm
mv $tmp.xpm.0 $tmp.xpm
/bin/rm -f $tmp.dvi $tmp.log $tmp.aux $tmp.xpm.1
§
ジェクトとして残ってしまい,スライドショウ時に消
すことができません.消すには通常のモードに戻る必
要があります.
その他のツール
¦
数式部分の LaTeX ソースを記述したファイル texeqn
を用意して (短ければ標準入力に直接書いてもいいで
すが)
¨
latex2xpm.sh eqn1 < texeqn
スライドショウに移行した場合には,図面にフリーハ
ンドで書き込みができます.マウス右ボタンでメニュー
¥
§
¦
等とすると,数式の XPM 画像 eqn1.xpm が出来上が
ります.
他にも,Tcl/Tk で書かれた EWIPE(関下浩正氏,
[2] W3 ) やネットワークビデオ会議ツールの WhiteBoard [3] W3 などが実用レベルにあるツールとして
有名ですが,筆者にはどうも凝ることができなかった
ので,名前だけの紹介ということで筆を納めることに
します.
参考文献
[1] Mew.org にある MagicPoint の公式ページ
http://www.mew.org/MagicPoint/index.html
[2] EWIPE の公式ページ
http://www.jnet-jp.to/~sekisita/ewipe/
[3] Berkley にある WB の公式ページ
http://www-nrg.ee.lbl.gov/
図 4 数式を XPM 画像に変換して取り込んだ様子
4
ダウンロード

Linux でプレゼンテーション II