CENTER:''文章作成システムの提案'' 日付:&_date; 名前:小林 大輔 学生番号:HT12A038 指導教員:兼宗 進 年度:2014 所属:総合情報学部 メディアコンピュータシステム学科 本研究では、 #contents *~研究の背景・目的 [#kdef7ab8] *様々な文章作成ソフト [#rff8ec2b] 現在、文章作成ソフトには「Word」、「Writter」等があり、これらは「視覚マークアップ言語」と呼ばれ、テキスト中の「手掛かり」から文書構造を推論しようというものである。 例えば、テキストファイルの文書のタイトルの前にいくつか改行やスペースを入れることで、行送りの調整や中央寄せを暗示させている。 これらの作業は、ユーザが入力した内容、つまり画面に出力される内容が印刷などの出力と一致するという利点がある。これはユーザにとってわかりやすい仕様であるが、ユーザーがすべてのレイアウト作業を行わなければいけない為、文章作成のみに集中することが出来ず、執筆以外にも労力が必要となる。 図や表を入れ替えた際に、番号を振り直す必要が生じることや、全体的に構成を変更した際に目次も変更しなければならない等、弱点と呼べる点が多々ある。 また、論文のように何十ページも文章も記述するとなると、どこにどのような文章が記述しているか一目で判断したり、それを思い出し作業するのは非常に困難でこの様な点でも文章作成のみに集中するのは難しい。 他にも、卒業論文や研究論文など理系の論文を執筆する際の多くは「LaTeX」という文章作成ソフトが存在する。 「LaTeX」の特徴としては、 -手続きマークアップ言語 -ソースコードを作成し、コンパイルを行うことで初めてDVIやPDFなどの閲覧用のファイルを得ることが可能 -コンパイルを行わないとどういった出力が得られるかが分かりにくい -非常に綺麗に数式を出力することが可能 等がある。 手続きマークアップ言語というのは、書式を整えるために、書式指定の命令を文章の直前にずらずらと並べ、中央揃えモードに移り、書体を大きくさせるなどの指示を出す。文章の後には、それらの効果を打ち消す命令が並ぶ、という言語である。出力した際には非常に整っていて見やすい。 *現在の論文執筆方法と提案方法の比較 [#b51a51eb] 本学の卒業論文の執筆方法は、各自様々なエディタを用いて、LaTeXの命令や本文を記述し、コマンドプロンプトなどを用いてコンパイルし、pdfファイルを得るという方法である。しかし、LaTeXの命令には複雑なものが多く、初学者が扱う際にはLaTeXの命令をいちいち参考書やインターネットなどで調べながら、本文を書かなければならない。そのため、文章作成のみに集中できないのではないかと考える。 そこで今回、「変換プログラム」を作成した。 *先行研究 [#we21acf9] 「Wiki2LaTeXフィルターの開発」 -吉井了平(関西学院大学) 目的 -文章作成に必要で頻出する命令の入力の軽減 -PukiWiki記法をTeX命令へ変換 -既存のフィルターである「pukipa.rb」を改良 -機能を新たに追加 →文章作成への集中と作業効率が向上 -しかし図や表などの命令には未対応 -卒業論文の作成には適してない *~研究課題 [#sa1ea5b6] -文章作成のみに集中できるように -記述が簡単なPukiWiki記法で書けないか -先行研究にない図や表に対応 *~研究内容 [#a8a88a9d] LaTeX を扱うのは容易ではなく負担がかかるため、今回は直感的に表などの作成が可能である「pukiwiki記法」を用いて、それをTeX形式に変換することで、ユーザの負担を軽減することは出来ないかと考えた。 *動作方法 [#bdc106ee] -PukiWiki記法を用いてWebブラウザ上で文章を記述 -文章をエディタへコピー&ペースト -Pukiwiki記法で作成された文章を作成したプログラムにかける -出力された文章ファイルの拡張子を(.tex)へ変更 -ターミナルなどを用いてコンパイルしPDFへ 上記を図に示したものが図【【activity】】である #ref(activity.png,center) CENTER:(変換方法,【activity】) *対応の仕方 [#ye0d098c] 今回pukiwikiのページを扱う利点としては、プレビュー時にPDFにした時のイメージが掴める、という点である。しかし、PukiwikiとLaTeXではそれぞれ利用目的が違うため、対応する項目は限られている。今回はそれぞれの項目の対応から行った。 対応時に考えたのは、プレビュー時にどれだけ自然に見せることができるか、という点である。 まず、LaTeX で文章作成を行う際に頻出する項目をリストアップしPukiwikiとの対応表を作成した。 それを図【【list】】に示す。 #ref(list.png,center) CENTER:(対応表,【list】) LaTeXに存在し、Pukiwikiに存在しない項目については、それぞれの意味が異なる項目でも対応させている。その時に考えたのは、Pukiwikiでのプレビュー時に、それの文章をPDFにした時にどのように出力されるのかイメージできるか、という点である。 PukiwikiとLaTeX、お互いに対応する語が存在しない項目をリストアップし、Webブラウザ上(Pukiwiki)で様々な項目を使用し、プレビューを行いながら対応付けを行った。 全ての項目を対応させるのは困難な為、今回の研究では、論文を作成する際に一般的に使用すると思われる項目と、卒業論文に使用するであろう項目に絞り対応付けを行う。 下記は一般的に使用すると思われる項目である。 -タイトル -著者 -日付け -概要 -目次 -章立て -表紙 -ラベル -参照 -文字のセンタリング -付録 -改行 -コメントアウト 下記は卒業論文のサンプルに記述されていたため、特別に必要であると思われる項目である。 -学生番号 -指導教員 -年度 -所属 -ページ番号の設定 -ノンブルを算用数字に 例えば、LaTeX には「章立て('''\chapter''')」や「見出し('''\section''')」という項目があるが、Pukiwiki記法には「章立て」という項目はなく「見出し」しかない、そのため自身で項目を考え対応させる必要があった。Pukiwiki上では「*」を使用しなければ目次に表示されない為、見出しと章立てを「*」を用いた記述方法にした。しかし、Pukiwiki記法では「***(LaTeXでいう'''\subsubsection''')」までしか対応されていない。そのため、文頭に「'''*~'''」と記述すると「章立て」とし、「見出し」部分と区別するようにした。 #ref(chapsec.png,center) CENTER:(編集画面とプレビュー,【chapsec】) 他にも、Pukiwkiには文章や画像・表などにラベルを付け、参照するという記述法はなく、それぞれにアンカーやリンクを付けるといった項目しかない。 対応する項目がない場合は難しく、Pukiwikiのページ上・文章中に存在しても違和感がなく、かつ、文章作成中に確実に使用しない記号を使用する必要があった。 今回、ラベル('''\label''')と参照('''\ref''')には、すみつきカッコを用いた(図【【labref】】参照)。 #ref(labref.png,center) CENTER:(Pukiwiki上でのラベルと参照,【labref】) LaTeXは「プリアンブル」と呼ばれる、インクルードファイルのようなものをテキストファイルに記述しなければコンパイルすることが出来ない。そのため、今回は卒業論文で使用するプリアンブルを変換プログラムにかけた際に自動で付与している(図【【puri】】参照)。パッケージの追加などには未対応であるため、決められた形式の論文を作成することしかできない。 #ref(puri3.png,center) CENTER:(プリアンブルの付与,【puri】) 論文を印刷した際に、ページ番号がついていないと非常に見にくくなってしまう。しかしPukiwiki記法はWebページを作成する言語なので、ページ番号を付与させるような命令はない。そのため、LaTeX形式に変換した際に特定のコマンドの前後にページ番号などの命令を付与させるようにした。プログラムが自動的に決められたページ番号を出力するようにした為、現在はページ番号の書式の設定などは出来ていない。 画像 *プログラムの処理 [#xcb81867] 下記は図【【item】】のプログラムの処理方法である。 + 記号を判別し、対応する命令'''\begin{itemize}'''を出力する(変数の値が0の場合) + 文頭の記号をを'''\item'''に変換し変数の値を+1する + 文頭に対応する記号が無い行かつ変数の値が0以上であれば命令'''\end{itemize}'''を出力する #ref(item.png,center) CENTER:(箇条書きの変換プログラム,【item】) 箇条書きや表組、画像貼り付け等、LaTeX側で複数行に渡り命令をする場合は図【【item】】のような処理方法を行っている。 その他のタイトル('''\title''')や目次('''\tableofcontents''')等、一行で判別が可能な命令については、図【【pl2】】のように文頭や文中に特定の項目がが存在した際に、LaTeXの命令に変換している。 #ref(pl2.png,center) CENTER:(タイトルと目次の変換プログラム,【pl2】) Pukiwikiではページ更新をした際に、見出し(*)を使用した際にアンカーが付属してしまう(図【【ancer】】参照)。アンカーを放置したままTeX形式に変換しターミナルなどでコンパイルするとエラーが出てしまうため、TeX形式へ変換する際にそのアンカーを削除する必要があった。文章作成時にアンカーのような文章を記述してしまうと、アンカーと同様に削除してしまう恐れがあった為、文頭が「*」で文末に特定の文字列が存在した場合のみアンカーを削除するプログラムを作成した。 #ref(ancer.png,center) CENTER:(ページ更新前と更新後の比較,【ancer】) *~評価実験 [#o662e8ee] *~考察 [#cce84965] *PukiWiki記法からTeX形式に変換するシステムの開発 [#o4bce59a] -現状 見出し・箇条書き・表・図、日付などの命令に対応 *課題 [#q2216e08] -PukiWiki記法にない項目(タイトル、著者、ラベル、参照など)を独自で考えTeXに対応させる -通常の手順(platex,dvipdfmx)でコンパイル可能にする -PukiWiki記法(*.tex)→TeX形式(*.tex)→コンパイル結果(*.dvi、*.ps、*.pdf) -評価実験を行う *~終わりに [#ef19b892] 「おわりに」では,あらためて,研究で何を行ったのか,また,そ の成果は何か,を簡潔にまとめる.また,今後の課題も簡潔にまとめる. 特に,今後の課題については,たくさんある場合でも,あまり多 くは書かず,次にするべきことは何かを簡潔にまとめる. 今後の課題がたくさんある場合には,考察のところで取り上げ, どのようなアプローチが考えられるかをなるべく具体的に書く とよい. *~謝辞 [#t76c9886] 「謝辞」では,卒業研究や修士の研究でお世話になった先生や 先輩に対して感謝の意を表す.卒業研究や修士の研究とはいう ものの,大学や大学院で得た知識の集大成が卒業研究や修士の 研究の成果なのであるから,それをふまえて,広く感謝の意を 表す方がよい. 通常,謝辞では,感謝の度合が高いほど先に書く.また,何 人かを一まとめにするよりは,個別に謝辞を書く方が,感謝の 度合が高くなる.同列に並べる時でも,役職の高い人を先に書 くなど,一般的に常識とされることがあるので,気を配った方 がよい. ---- *~付録 [#h12a62c8] 付録には実験のデータやプログラムリストを付ける