論文作成システムの提案
日付:2025-07-13
名前:小林 大輔
学生番号:HT12A038
指導教員:兼宗 進
年度:2014
所属:総合情報学部 メディアコンピュータシステム学科
論文執筆等の文章作成を行う時に使用するソフトの一つに、LaTeXがある。このソフトは、各自が様々なエディタを用いてLaTeX命令や文章を書き、LaTeXを実行してPDFファイルを得るという方法である。
しかし、LaTeX初学者にとってLaTeXの命令等を、参考書やWebサイト等で調べながら、文章やPDFファイルを作成するのは、文章作成自体に集中できず、文章作成以外に労力を取られてしまう。
そこで今回「論文作成時に必要である命令を直感的に記述するための提案を行った。
課題を実現する為にPukiwikiを用いた。これはWeb上で命令や文章を作成し、プレビューボタンを押すだけで出力結果を見ることが可能である。命令も直感的に記述することが出来る為、Pukiwikiを用いた。
PukiwikiとLaTeX命令の対照表を作成し、その表を元にプログラムを作成した。その際、Pukiwikiで対照する命令がない事があった為、自身で考え対応させた。
対応時にはプレビューした際に、PDFにした時のイメージが掴めるように行った。
結果、プレビューボタンで完成時のイメージが掴める様になり、文章作成への集中が向上したのではないかと考える。
LaTeX Pukiwiki
~はじめに †
文章を作成するための言語には、「視覚マークアップ言語」や「手続きマークアップ言語」がある。
上記の言語を用いたソフトには「Microsoft Word」や「Open Office Writer」や「LaTeX」などがあるが、論文作成には主に「LaTeX」というソフトを用いられる。
このソフトは、各自様々なエディタにLaTeXの命令や本文を記述し、コマンドプロンプトなどを用いてコンパイルし、PDFファイルを得る事が可能。数式を扱うのに長けており、複雑な数式を美しく記述可能であるのが特徴である。そのため、理系の文章作成において重宝されている。
本学科の卒業論文作成にもこのLaTeXを使用している。
しかし、LaTeXの命令には複雑なものが多く、初学者が扱う際にはLaTeXの命令を参考書やインターネットなどで調べながら、文章を書かなければならない。文章の内容を考え、何十ページも記述しなければならない卒業論文の際に、命令についての調べ作業をしてしまうと、文章作成のみに集中できないのではないかと考えた。
そこで今回、プレビューボタンを押すだけで出力結果が見れる、事項が直感的に記述可能なPukiwikiに着目した。
本研究では論文作成において必要であるLaTeXの命令と、Pukiwikiの事項を対応させることで、ユーザへの入力負担を軽減できるのではないかと考え、Pukiwiki記法をTeX形式の命令へ変換するプログラムを作成した。
~様々な文章作成ソフト †
現在、文章作成ソフトには「Microsoft Word」、「Open Office Writer」、「LaTeX」等があり、それぞれのソフトが一長一短である。
入力した内容、画面に出力されている内容と、印刷した時の出力が一致する。数式が綺麗に出力できる。文章作成時に、レイアウトに気を遣ったり、命令を調べながらでないと文章を作成できない、等がある。
視覚マークアップ言語 †
例えば、テキストファイルの文書のタイトルの前にいくつか改行やスペースを入れることで、行送りの調整や中央寄せを暗示させている。
図や表を入れ替えた際に、番号を振り直す必要が生じることや、全体的に構成を変更した際に目次も変更しなければならない等、課題がある。
これらの作業は、ユーザが入力した内容、つまり画面に出力される内容が印刷などの出力と一致するという利点がある。これはユーザにとってわかりやすい仕様であるが、ユーザーがすべてのレイアウト作業を行わなければいけない為、執筆以外にも労力が必要となる。
Microsoft Word †
- マイクロソフトが1983年にMulti-Tool Wordという名前で発売した
- WindouwおよびMac OS向けに販売されている
- 複雑なレイアウトを作成した際に崩れにくい
- ボタン一つで文章を中央に寄せる、などレイアウトの設定が容易である
(Microsoft Word,【word】)
Open Office Writer †
- オラクル コーポレーションが開発、英語版のバージョン1.0が2002年5月1日にリリースされた
- 無料で入手でき、自由に使える
- ボタン一つで文章を中央に寄せる、などレイアウトの設定が容易である
- スタイルを使うことで、文書の構造と見かけを分けて管理できる
(Open Office Writer,【word】)
手続きマークアップ言語 †
書式を整えるために、書式指定の命令を文章の直前に並べ、中央揃えモードに移る、書体
を大きくさせる、などの指示を出す。文章の後には、それらの効果を打ち消す命令が並ぶ、という言語である。出力した際には非常に整っていて見やすい。しかし、命令が複雑な為、記述は容易ではない。
LaTeX †
- TeXにパッケージを組み込み構築されている
- ソースコードを作成し、コンパイルを行うことで初めてDVIやPDFなどの閲覧用のファイルを得ることが可能である
- コンパイルを行わないとどういった出力が得られるかが分かりにくい
- 非常に綺麗に数式を出力することが可能である
Wiki2LaTeXフィルターの開発 †
吉井了平(関西学院大学)
LaTeXで文章作成する際に必要で、頻出する命令を、PHP言語で動作するWikiの一種である、Pukiwikiの記法と、その他に自身で設定した記号に置き換えることにより、LaTeX命令の入力作業の軽減を実現している(図【【wiki2tex】】)。
PukiWiki記法をTeX命令へ変換するために既存のフィルターである「pukipa.rb」を改良している。「pukipa.rb」はPukiwikiの独自文法を、HTMLに変換するプログラムである。HTMLに出力する部分をそれぞれに対応するLaTeX命令へ変更している。
この研究では頻出する命令のみに対応している。しかし、表や図など対応していない命令がある。
(先行研究での執筆方法の比較,【wiki2tex】)
~本学の論文執筆方法 †
本学の卒業論文の執筆方法は、各自様々なエディタを用いて、LaTeXの命令や本文を記述し、コマンドプロンプトなどを用いてコンパイルし、PDFファイルを得るという方法である。
一般的な論文を作成する際には以下の事項が必要である。
- タイトル
- 著者
- 日付け
- 概要
- 目次
- 章立て
- 表紙
- ラベル
- 参照
- 文字のセンタリング
- 付録
- 改行
- コメントアウト
下記は本学の卒業論文に必要である事項である。
- 学生番号
- 指導教員
- 年度
- 所属
- ページ番号の設定
- ノンブルを算用数字
上記のLaTeXの命令には複雑なものが多く、初学者が扱う際にはLaTeXの命令を参考書やインターネットなどで調べながら、本文を書かなければならない。そのため、文章作成のみに集中できないのではないかと考える。
そこで、Pukiwiki記法でLaTeXのように文章作成をすることが出来ないか、と考えた。
先行研究では、Pukiwiki記法をTeX命令に変換し、入力作業の軽減を実現しているが、図や表などの事項には未対応である。
本研究では、Pukiwikiで作成した文章を変換し、拡張子を変更、その後コンパイルするだけで、PDFファイルにできることを目標にした。
Pukiwikiを使用する利点としては、命令を直感的に記述することが可能、プレビューボタンを押すだけで出力結果が見れる点がある。
今回はPukiwiki上で作成した文章をTeX命令へ変換するプログラムを作成した。
従来のLaTeXでの文章作成方法(図【【tex】】)と、今回提案するPukiwik記法での文章作成方法(図【【wiki2】】と図【【wiki1】】)をそれぞれ示す。
(LaTeX記法,【tex】)
(提案する手法(編集画面),【wiki2】)
(提案する手法(プレビュー画面),【wiki1】)
~研究内容 †
動作方法 †
- Webブラウザ上でPukiWikiを用いてプレビューを行いながら文章を記述する
- 文章をテキストエディタへコピー&ペーストする
- Pukiwiki記法で作成された文章を、今回作成したプログラムにかける
- 出力された文章ファイルの拡張子を(.tex)へ変更する
- ターミナルなどを用いてコンパイルしPDFファイルにする
上記の流れを図に示したものが図【【activity】】である。
(動作方法,【activity】)
対応の仕方 †
今回Pukiwikiを扱う利点としては、命令が直感的に記述することが出来る、プレビューボタンを押すだけで出力結果が見れる、という点である。しかし、PukiwikiとLaTeXではそれぞれ利用目的が違うため、必ず事項が対応するとは限らない。今回はそれぞれの事項の対応から行った。
まず、LaTeX で文章作成を行う際に頻出する項目をリストアップしPukiwikiとの対応表を作成した。
一部を、図【【lists】】に示す。
(対応表,【lists】)
LaTeXに存在し、Pukiwikiに存在しない項目については、命令同士の意味が異なる場合でも対応させている。Pukiwikiでプレビューした時、文章やレイアウトを見ることでPDFをイメージ出来るように対応している。
章立て †
LaTeX には「章立て(\chapter)」や「見出し(\section)」という命令がある。しかし、Pukiwiki記法には「章立て」はなく「見出し(*)」しかない。Pukiwiki上では「*」を使用しなければプレビュー時に目次に表示されない為、見出しと章立てを「*」を用いた記述方法にした。しかし、Pukiwiki記法では「***(LaTeXでいう\subsubsection)」までしか対応されていない。そのため、文頭に「*~」と記述すると「章立て」とし、「見出し(*)」部分と区別するようにした(図【【chapsec】】参照)。
(編集画面とプレビュー,【chapsec】)
ラベル・参照 †
Pukiwkiには文章や画像・表などにラベルを付け、参照するという記述法はなく、それぞれにアンカーやリンクを付けるといった事項しかない。
この様な対応する事項がない場合は難しく、Pukiwikiのページ上・文章中に存在しても違和感がなく、かつ、文章作成中に使用しない記号を使用する必要があった。
今回、ラベル(\label)と参照(\ref)には、すみつきカッコ(【 】)を用いた(図【【labref】】参照)。
(Pukiwiki上でのラベルと参照,【labref】)
図の挿入 †
図を挿入する際には、一度Pukiwiki上にアップロードし(#ref(画像ファイル名),図の位置)と記述するとPukiwiki上に図が表示される。TeX命令へ変換しPDFにする場合にはTeXファイル(*.tex)と同じフォルダ内に画像ファイルを挿入しておく必要がある。
Pukiwikiではファイル名がその図の表示名になってしまう為、表示名を出力する命令を自身で考え追加した(図【【ref1】】参照)。
図【【ref1】】中の数字の説明を以下に記す。
- Pukiwikiでの図を挿入する命令
- 図の下部に表示名とラベルを表示することで、PDFでの表示と似せる。
(図の挿入,【ref1】)
タイトルなど表紙に記述する内容 †
論文には、タイトルや著者名や日付が必要である。他にも、今回の卒業論文では、学生番号や指導教員名、所属学科などを記述する必要がある。タイトルは最上の中央部に太字で出力し、日付はPukiwikiが標準で扱えるものを使用する。それら以外の記述方式は似せるようにした(【【title】】)。
(表紙に記述する文章,【title】)
プログラムの処理 †
主なプログラムの処理方法 †
下記は図【【item】】のプログラムの処理方法である。
- 文頭の記号を判別し、変数の値が0の場合、対応する命令\begin{itemize}を出力する
- 文頭の記号を\itemに変換し変数の値を+1する
- 文頭に対応する記号が無い行、かつ変数の値が0以上であれば命令\end{itemize}を出力する
(箇条書きの変換プログラム,【item】)
箇条書きや表組みなどLaTeX側で複数行に渡り命令をする場合は図【【item】】のような処理方法を行っている。
その他のタイトル(\title)や目次(\tableofcontents)等、一行で判別が可能な命令については、図【【pl2】】のように文頭や文中に特定の項目がが存在した際に、LaTeXの命令に変換している。
(タイトルと目次の変換プログラム,【pl2】)
図の挿入 †
LaTeXでの図の挿入の命令は複雑である。図を表示させる、図の場所を指定する、図の名前を出力する命令、場合によってラベルを付与する必要がある。
Pukiwikiでの入力(図【【lab1】】)をTeX命令(【【lab2】】)へ当てはめていく処理を行っている。
(Pukiwikiでの図の表示,【lab1】)
(TeX命令へ変換後,【lab2】)
アンカーの削除 †
Pukiwikiではページ更新をした際に、見出し(*)を使用した際にアンカーが付属してしまう(図【【ancer】】参照)。アンカーを放置したままTeX形式に変換しターミナルなどでコンパイルするとエラーが出てしまうため、TeX形式へ変換する際にそのアンカーを削除する必要があった。文章作成時にアンカーのような文章を記述してしまうと、アンカーと同様に削除してしまう恐れがあった為、文頭が「*」で文末に特定の文字列が存在した場合のみアンカーを削除するプログラムを作成した(図【【texanc】】参照)。
(ページ更新前と更新後の比較,【ancer】)
(変換前と変換後の比較,【texanc】)
プリアンブルの付与 †
LaTeXは「プリアンブル」をテキストファイルに記述しなければコンパイルすることが出来ない。そのため、今回は卒業論文で使用するプリアンブルを変換プログラムにかけた際に自動で付与している(図【【puri】】参照)。その際に\begin{document}も一緒に付与している。\end{document}は文章の最後に付与している。これによりコンパイルが可能になる。しかし、パッケージの追加などには未対応であるため、決められた形式の論文を作成することしかできない。
(プリアンブルの付与,【puri】)
表紙・ページ番号の付与 †
論文を印刷した際に、表紙やページ番号がついていないと非常に見にくくなってしまう。しかしPukiwiki記法はWebページを作成する言語なので、表紙やページ番号を付与させるような命令はない。そのため、LaTeX形式に変換した際に特定の命令の前後にページ番号などの命令を付与させるようにした。概要を記述すると、表紙と概要ページのページ番号、目次を記述すると、目次以下のページ番号を決められた書式で出力される(図【【pagenumber】】参照)。
しかし、プログラムが自動的に決められたページ番号を出力するようにした為、現在はページ番号の書式の設定などは出来ていない。
(表紙やページ番号の出力,【pagenumber】)
~使用結果 †
筆者自身がPukiwikiを用いて卒業論文の文章を作成した。本論文が本研究の成果である。
本研究ではPukiwikiを用いてその編集画面でPukiwikiの項目を使用し、文章を作成した。
筆者自身の感想だが、LaTeXで記述する以上に、文章の記述に対する集中は向上したのではないかと考える。
~考察 †
本論文をPukiwiki記法で作成した。それにより課題を発見することが出来た。
課題 †
- 段落を下げた箇条書きが記述できない
- プリアンブルが規定されたものしか付与できない為、決められた論文しか作成できない
- ページ番号も規定されたものしか付与できない
- プレビューした後、編集画面が最下部に行ってしまう為、スクロールしなければならない
- 行番号がないので編集時にわかりにくい
- PukiwikiからTeXへ変換しPDFにする作業が難儀
改良案 †
課題の一部の問題に対する改良案として、プログラムの見直しが必要であると考える。
スクロールや行番号問題に対してはPukiwiki自体のプログラムを変更することで解決可能ではないかと考える。
PDFにする作業については、Pukiwiki上にボタンなどを追加で表示しそのボタンを押すことで、今回作成したプログラムが起動し、TeX命令へ変換、その後自動的にPDFファイルとしてダウンロードすることが可能になれば、少しでも作業の軽減ができるのではないか、と考える。
~おわりに †
本研究によりPukiwiki記法を用いて文章を作成し、その文章をTeX命令へ変換するプログラムを作成した。
これにより、命令を直感的に記述することが可能になり、文章作成の際にユーザにかかる負担を軽減することが出来た。
今回、本論文をPukiwikiで作成するにあたり、課題を発見することが出来た。
~謝辞 †
本研究、本論文を終えるにあたり、御指導・御教授を頂いた兼宗進教授に深く感謝いたします。
また、学生生活における基礎的な学問、学問に取り組む姿勢をご教授頂いた、メディアコンピュータシステム学科の先生方に深く感謝致します。
本研究期間中、本研究に対する貴重な御意見、御協力を頂きました島袋舞子氏に心から感謝致します。そして、卒業研究に共に励んだ兼宗研究室メンバー一同にも深く感謝します。
*1
~付録 †
付録には実験のデータやプログラムリストを付ける