日付:2024-11-24
名前:小林 大輔
学生番号:HT12A038
指導教員:兼宗 進
年度:2014
所属:総合情報学部 メディアコンピュータシステム学科
概要とは 概要とは
本学のメディアコンピュータシステム学科の卒業論文はTeXで記述している 初学者がTeXを記述するのは簡単ではない 命令が多く、文章作成のみに集中できない
TeX
「Wiki2LaTeXフィルターの開発」
→文章作成への集中と作業効率が向上
Pukiwiki記法で記述可能な文章作成システムの開発
Wikiを記述する際に使用する言語
タイトル | 著者 |
日付 | 箇条書き |
目次 | 見出し |
章立て | ラベル |
参照 | 数式 |
フォントサイズ | フォントの色 |
図 | 表 |
付録 | コメントアウト |
下線 | ページ番号の設定 |
LaTeX を扱うのは容易ではなく負担がかかるため、今回は直感的に表などの作成が可能である「pukiwiki記法」を用いて、それをTeX形式に変換することでユーザの負担を軽減することは出来ないかと考えた。
上記を図に示したものが図【【】】である
今回pukiwikiのページを扱う利点としては、プレビュー時にpdfにした時のイメージが掴める、という点である。しかし、PukiwikiとLaTeXではそれぞれ利用目的が違うため、対応する項目は限られている。今回はそれぞれの項目の対応から行った。
対応時に考えたのは、プレビュー時にどれだけ自然に見せることができるか、という点である。 まず、LaTeX で文章作成を行う際に頻出する項目をリストアップしPukiwikiとの対応表を作成した 図【【】】に示す。
LaTeXに存在し、Pukiwikiに存在しない項目についてはプレビュー時に、pdfにした時にどうなるのか明確に理解できれば意味が異なる項目でもそれを使用し対応させている。
PukiwikiとLaTeX、お互いに対応する語が存在しない項目をリストアップし、Webブラウザ上(pukiwiki)で様々な項目を使用しプレビューを行いながら対応付けを行った。 全ての項目を対応させるのは困難な為、今回の研究では論文を作成する際に一般的に使用すると思われる項目と卒業論文に使用するであろう項目に絞り対応付けを行う。 下記は一般的に使用すると思われる項目である。
下記は卒業論文のサンプルに記述されていたため、特別に必要であると思われる項目である。
例えば、LaTeX には「章立て」という項目があるが、Pukiwiki記法には「章立て」という項目はなく「見出し」しかない、そのため自身で項目を考え対応させる必要があった。Pukiwiki上では「*」を使用しなければ目次に表示されない為、見出しと章立てで同様に「*」を用いた記述方法にするようにした。しかし、pukiwiki記法では「***(LaTeXでいう\subsubsection)」までしか対応されていない。そのため、文頭に「*」と記述すると「章立て」とし、「見出し」と区別するようにした。
編集画面画像
他にも、Pukiwkiには文章や画像・表などにラベルを付け、参照するという記述法はなくそれぞれにアンカーやリンクを付けるといった項目しかない。 対応する項目がない場合は難しく、Pukiwikiのページ上・文章中に存在しても違和感がなく、尚且つ、文章作成中に確実に使用しない記号を使用する必要があった。 今回、ラベル(\label)と参照(\ref)にはすみつきカッコを用いた()。
ラベルと参照
LaTeXは「プリアンブル」と呼ばれるインクルードファイルのようなものをテキストファイルに記述しなければコンパイルすることが出来ないため、今回は卒業論文で使用するプリアンブルを変換プログラムにかけた際に自動で付与している()。パッケージの追加などには未対応であるため、決められた形式の論文を作成することしかできない。
プリアンブルの付与
論文を印刷した際に、ページ番号がついていないと非常に見にくくなってしまう。しかしPukiwiki記法はWebページを作成する言語なので、ページ番号を付与させるような命令はない。そのため、TeX形式に変換した際に特定のコマンドの前後にページ番号などの命令を付与させるようにした。プログラムが自動的に決められたページ番号を出力するようにした為、現在はページ番号の書式の設定などは出来ていない。
画像
下記は図のプログラムの処理方法である。
リスト無画像
箇条書きや表組、画像貼り付け等、LaTeX側で複数行に渡り命令をする場合は図のような処理方法を行っている。
その他のタイトル(\title)や目次(\tableofcontents)等、一行で判別が可能な命令については図\ref{pl2}のように、文頭や文中に特定の項目がが存在した際にLaTeXの命令に変換している。
タイトルと目次の画像
Pukiwikiではページ更新をした際に、文頭に「*(見出し)」を使用した文末にアンカーが付属してしまう(図)。アンカーを放置し、そのままTeX形式に変換しターミナルなどでコンパイルするとエラーが出てしまうためTeX形式へ変換する際にそのアンカーを削除する必要があった。文章作成時にアンカーのような文章を記述してしまうと、アンカーと同様に削除してしまう恐れがあった為、文頭が「*」で文末に特定の文字列が存在した場合のみ削除するようにプログラムを作成した。
ページ更新前後の比較