1　はじめに
節便にプレゼンテーション資料（以降，資料と略す）を作成可能なツールが好まれる場合がある。Pow- erPoint等のプレゼンテーションソフトの使用は手間がかかるため，マークダウン記法のような箇便な文法で，資料を作成するためのツールが受け入れられつつある。マークダウン記法とは，HTMLのようなマークアップ言語の記法を簡便化した記法であり後述する。マークダウン記法を用いた資料作成では，リストの入れ子構造のような単純な構造を，あらかじめ定められたテンプレートに適用することで資料を作成する。これにより，資料作成者は，資料内容の作成に集中できる。さらに，資料を迅速に作成することが容易
になる.
マークダウン記法を用いた薬早い資料作成における懸念事項として，発表中に資料の不足点に気づき,発表中に資料を補いたい場合を考える。例えば，聴講者からの質問などに答える場合が考えられる．このとき，作成済みの資料等の再利用が有効であると考えられる。本研究では，マークダウン記法による，既存資料の再利用を実現することを目指す。状況に応じて既存資料を再利用することで，素早い資料作成が期待できる．さらに，プレゼンテーション中における聴講者からのフィードバックに注目した．聴講者の様子を確認し，発表の状況に適応した状況適応なプレゼンテーションは，聴講者の理解の促進に効果的である．発表中に資料入れ替えや関連資料の追加が可能であれば,資料の不足部分を補いつつ，聴講者の様子に応じた発装が可能となる[2].上記のプレゼンテーションを実現するためには次の３点を実現する。 1）レイアウトなどの見た目に関して，ひな形を用いて，素早く資料を作成することが可能である。2）既存のスライド資料が再利用できる。 3）プレゼンテーション中における聴講者の様子に応じた操作が可能である。本研究では，以上３点が可能な，状況即応的なプレゼンテーションシステムを開発した．これは，即応的な資料作成および状況適応なプレゼンテーションを容易にするプレゼンテーションシステムを意味する。本システムでは，上記に対応した３つの機能1)即応的な資料作成機能， 2)適応的な資料変換機能，および3)伏祝適応なスライド管理機能を実装することで，状況即応的なプレゼンテーションを実現する．1)即応的な資料作成機能では，茶早い資料作成のためのマークダウン記法を用いた。 2)適応的な資料変換機能では，PPTX形式やPDF形式など，錄々なスライド形式に対応した．3)状況適応なスライド管理機能では，発表中のスライドの状態を把握し，状況に応じてスライドを操作する。本研究では，独自定義の記法を追加した拡張マークダウンを用いる。本稿では,実装した上記３つの機能をもつ，拡張マークダウンを用いた状況即応的なプレゼンテーションシステムについて述べる. EdgeらはHyperSlidesと呼ばれるプレゼンテーション支援システムを開発した[1].  HyperSlidesでは，独自のマークアップ言語を用いてシンプルな資料を効率よく作成する。マークアップ言語を記述したファイルからPowerPointで用いられるPPTXファイルを生成する。同時にマークアップ言語によりスライド間をリンクさせ，複数方向へのページ遷移を行うことを可能とする。これにより，資料作成の簡単化,効率的なリハーサルのサポート，聴講者の理解を促進させるプレゼンテーションを支援することに特徴がある。本システムにおいても資料作成の簡単化，聴講者の理解促進といった点を目指している.
2  実装
2.1拡張マークダウンはじめにマークダウン記法について述べる。マークダウン記法の一部を図1に示す†¹．プレインテキストからHTMLを生成する。図１の左側にマークダウン記法で記述されたプレインテキスト，右側には左側のテキストにより生成されたHTMLが表示されている。図中の記法の他にも様々な記法が存在する.新たに迫加した記法について記す。追加した記法は設定とコメントの記述に用いる。設定では，資料のサイズと，資料遷移先候補をどのリソースから検索するかを決定する。コメントは資料作成時にメモとして記述を行う。資料の設定に用いる場合は(==プロパティ名:首==)という記法を用いる。プロパティ名としてはsizeとresourceがある。sizeに対する値としてはよく用いられる資料サイズの比として4:3と16:9がある．re- sourceに対しては，localとwebがある．localの場合資料遷移先候補を発表中の資料から検索する。 webの場合は資料遷移先候補をWikipediaのページから検索する。コメントを使用する場合は{##コメント##}という記法を用いる。コメントに対してアノテーションを記述する記法が存在する。コメントを強調する場合は**コメント**という記法を用いる。コメントに下線を引く場合はが記述される．p:sldタグ直下には他にもタグが存在する．本システムではテキスト情報のみを扱うためp:csldタグを解析対象とする．p:csldタグに含まれるタグの１つにp:spTreeタグがある．ここには複数のp:spタグが含まれる．p:spタグはスライド中の１つのオプジェクトを表す。例えば、図２ではスライドのタイトルはp:spTreeタグ内の最初のp:spタグで表される。コンテンツは2番目以降のp:spタグで装される。p:spタグ内にはp:txBodyタグ，p:spPrタグ， p:styleタグが含まれる。それぞれオブジェクトのテキスト情報，プロパティ，スタイル情報が記述される．本システムではPPTXファイル読み込み時にp:txBodyタグからテキストを取得する、PPTXファイルの読み込み時，初めにテキストコンテンツの記述されたXMLファイルを取り出しJavaScriptのオブジェクトへと変換する．変換にはnode.jsのjs-pptxライプラリを用いる、次にオプジェクトのルートからp:txBodyタグまで辿っていき，スライド中のテキストを取得する。この操作をスライドの枚数分繰り返し，全てのスライドのテキスト情報を取得した後エディタに読み込む.資料作成画面を図3に示す. 図3は図2で表されるXMLファイルを持つPPTXファイルを読み込んだ結果である。1はエディタであり，資料となるテキ___という記法を用いる．資料作成時にこれらの記述を行う.
2.2資料再利用の方法
ここでは特にPPTXファイルの再利用について述べる.  PPTXファイルはOOXML(Office Open XML)という形式で表される。複数のXMLファイルと画像ファイル等を１つに纏めて圧縮したものであり，内部のXMLファイルにはテキストコンテンツ，スタイル情報，設定情報等が記述されている．それぞれのスライド情報はXMLファイルに記述されている．実際のXMLファイルの一部を図2に示す. 図中ではp:sldタグ直下に３つのタグが存在する。p:csldタグ, p:clrMapOvrタグ,  p:timingタグである. それぞれスライド構造，配色，アニメーションに関する情報ストを入力する。２はプレビューワーであり，エディタで入力したテキストを資料へ変換しリアルタイムに表示する。スライドは１枚ずつの表示とスライド全体を並べた表示を切り替えることが可能である。画面上部のPDFボタンにより作成した資料をPDF形式で出力する．presenポタンにより，作成した資料を用いてプレゼンテーションを行うプレゼンテーションウィンドウを表示する。外部ディスプレイが存在すれば外部ディスプレイに装示される.
3実装
3.1システム構成
実装にはElectronを利用した.  Electronは，Webアプリケーション開発で用いられる言語を利用して,クロスプラットフォームなデスクトップアプリケーション開発を行うフレームワークである.図4に開発したシステムの構成図を示す。システム構成について述べる。本システムは，アプリケーションを管理するメインプロセスと，ウィンドウ内で動作するレンダラープロセスに分かれる.メインプロセスは，ウィンドウの作成，削除，レンダラープロセスとの通信を行うウィンドウ管理機構から構成される.レンダラープロセス同士の通信ではメインプロセスを介した通信を行う。レンダラープロセスは，３つのウィンドウ上で動作する。資料作成ウィンドウ，発表者ツールウィンドウ,プレゼンテーションウィンドウである.資料作成ウィンドウ上ではテキストを入力するエディタ,テキストを資料へ変換して表示するプレビューワーが動作する。エディタとプレビューワーは通信により同期して動作する。同期タイミングはエディタで入力操作や読み込みが起こったタイミングである.プレビューワーはエディタから入力されたテキストを受取り，パーサに通すことでHTMLへの変換を行い表示する．プレビューワーはWebViewタグで表現され，別のプロセスとして扱われる．メリットとしては，Webviewのメソッドによりプレビューワーで表示する資料のみをPDF出力可能な点がある。ただし，エディタとプレビューワーとの通信ではレンダラープロセスとメインプロセスのIPC通信とは違った通信が必要である．プレビューワーのデータを別のレンダラープロセスへ送る際，一旦プレビューワーから同一ウィンドウで動作するレンダラープロセスへとデータを送る。そこからメインプロセスを介して他のレンダラープロセスへと送る必要がある．すなわち，通信処理が多くなるという点がある.発表者ウィンドウ上では，プレゼンテーションウィンドウで表示中の資料を操作する発表者ツール，資料の状態を表示するプレビューワーが動作する。発表者ウィンドウ上では実際に資料には表示されず発表者のみが確認可能なコメントが表示される。コメントは資料作成時に決められた記法を用いて記述する。プレゼンテーション時間を測るタイマーが表示される．また，次のスライド遷移先候補が表示される．遷移先候袖は拡張マークダウンの記述により発表中の資料中,またはWeb上から選択される．前者の場合は，表示しているスライドのキーワードから決定される。キーワードはスライドにおけるテキストから単語を抽出したものである。共通したキーワードを持つスライドを資料中から検索し，遷移先候補とし表示する．後者の場合は，Wikipediaからのキーワード検索結果をスライド化して遷移先候補とし，表示する．表示された遷移先候補をクリックすることでページ遷移が行われる.プレゼンテーションウィンドウは外部ディスプレイに作成され，ウィンドウ上では作成した資料を表示する資料表示機構が動作する．Electronではディスプレイ情報を扱うscreen APIを利用可能である．これを用いて外部ディスプレイの情報を扱う。このウィンドウはフレームを非表示に設定することで視認性を向上させている。資料表示機構は発表者ツール上での操作と同期して動作する。操作は方向キーとクリックによる操作であり，操作時にページ遷移信号が資料表示機構へ送られる。資料表示機構は発表者ツールから受信したページ選移信号に応じたページ選移を行う.それぞれのレンダラープロセス間は直接通信することが出来ないため，メインプロセスを介した通信を行う.
3.2 即応的な資料作成および資料操作
即応的な資料作成を支援する機能としては，大きく2点挙げられる。一つは資料編集時に三種類のファイル（PPTXファイル，画像ファイル，mdファイル）のドラッグ&ドロップによる読み込みに対応している点である。PPTXファイルはPowerPointファイルであり，mdファイルはマークダウン記法で記述されたファイルである．二つ目に，マークダウン記法を用いることにより一定のレイアウトで資料編集を行う.以上の二点が即応的な資料作成を支援する.図５に発表者ウィンドウの動作例を示す。本システムにおいて，発表者は作成した資料を用いてプレゼンテーションを行うことが可能である．ここで発表者は発表者ウィンドウ内で、外部ディスプレイに出力される資料を操作可能である．キーボードでの操作，またマウスによる操作に対応している．発表者ウィンドウ内で資料は作成した順番で並べて表示される。また,資料の順番は内部でリストとして管理されている。ドラッグ&ドロップで資料の順番を変更することで資料を表示するDOM要素と同時にリストが更新される.そのため，発表者は発表中に資料の順番を変えることが可能である．発表者は聴講者の様子や反応を確認し，資料順番を変更することで状況に応じたプレゼンテーションを行うことが可能である.発表者は，発表者ウィンドウにおいて次のスライド遷移先候補を確認可能である。スライドの遷移先は拡衷マークダウンの記述に従って発表中の資料上またはWeb上から決定される。発表者は遷移先候補のスライドヘクリックで遷移可能であり，資料遷移の支援を受ける.
3.3今後の課題
今後の課題としては，まずプレゼンテーションの定量的な評価を行う必要がある．現状ではシステムの定量的評価が出来ていないため，何らかの指標を用いて評価を行う。資料レイアウトの追加を行う必要がある．現状では１つのレイアウトのみに対応している．フォントの大きさ，色，配置といったスタイル情報をあらかじめ決めたレイアウトを複数用意し，様々な目的に対応することでより即応的な資料作成が可能になると考えられる.
4　おわりに
本稿では以下の３点の特徴を持つプレゼンテーションシステムを実装した。1点目に、レイアウトより内容が重要となる場面で素早く資料を作成可能である。 ２点目に、聴講者からのフィードバックに対し適応的なプレゼンテーションが可能である。3点目に，既存のPPTX形式やPDF形式の資料を再利用することが可能である。特筆すべき点としては，マークダウン記法を拡張した拡張マークダウンを導入した点，およびPPTXファイルを含む複数種類のファイルがドラッグ＆ドロップにより読み込み可能とすることで，即応的な資料作成を実現した点である。また、発表者に資料遷移先候補を通知することで資料遷移を支援し、かつ、容易に資料順番を変更可能としたことで状況適応なプレゼンテーションを実現した点である.謝辞本研究の一部はJSPS科研費JP15K00422, JP16K00420の助成を受けたものです.