この資料は、私が卒業論文・修士論文の指導の際によく口にしている内容をまとめたものである。レポートや学会・雑誌への投稿論文にも参考になる部分はあるだろうが、それらでは多かれ少なかれ事情は違う。また、博士論文になってくると、執筆者の研究テーマ等によって変わってくる部分も大きくなるだろう。
この資料のテーマは、論文を書くという具体的作業――つまり文書執筆という作業についてである。いわゆる「論文の書き方」、つまり論文に含まれるべき論理的内容・ストーリー・プレゼンテーションなどの構成については原則として触れない。「論文の書き方」については、インターネット上にも非常に多くの指南がある。その内容を繰り返すのは避け、それをある程度知っていることを前提に、具体的な執筆作業に落とし込んでゆく際の注意点を挙げようと思う。また、いわゆる「レポートの書き方」についてはすでに指導されたものと仮定している。そのため、段落頭は字下げをしろとか、体言止めはやめろとか、剽窃はするなとか、そのような基本的なことについては言及しない。
あらかじめ断っておくが、論文の書き方には唯一の正解はない(明らかな間違いはある)。それぞれの分野にはその分野ごとの文化やルールがあるし、またその論文の内容によって適切な表現は変わってくる。とはいえ、卒業論文・修士論文はその人にとって(事実上)初めての論文になる場合が多く、ある程度の指針なしには手が進まない場合も多い。この文書の目標は、私が学んできた分野・文化の習慣をベースに、一つの指針を与えることである。これに納得できない場合には別のものを採用してもよい。
「論文はいつ書き始めるのですか?」という質問をされることが少なからずある。これについては、本人のテーマ・適性・スタイル等に依存していろいろな考え方がある。
1つの考え方は「締め切りに間に合うように書く」というものだ。これは、実験結果や証明の成否などにストーリーが大きく依存するようなテーマ・締め切りが近づかないと筆が進まないタイプの人に適している。逆に言えば、そのようなテーマ・タイプでなければあまりおすすめできない。大きな理由は、多くの場合、自分の執筆速度、ひいてはいつ書き始めれば締め切りに間に合うかが分かっていないためである。気がついたら時間切れ、というケースは少なからずある。そのため、この方式は可能なら避けたい。
対極に位置する考え方は「論文を書きながら研究を進める」だ。研究の進捗に従って空白の段落等を含んだ論文を書いてゆき、その空白が埋まるように研究を進める。この方法は、うまく行くなら理想な方法だ。論文を書くことで、現状が整理でき、今後やらなければならないことが明確になる。つまり「どのように研究を進めればよいか」という、研究の中でも最大級の難しさを軽減できる。しかし、この方針も「初めて論文を書く」という人には勧めにくい。「空白を含んだ論文を書く」というのは「空白を含まない論文を書く」のにくらべて遙かに難しい。
現実的な方法は両者の中間的なものだろう。つまり、いざ「論文を書く」段になればすらすら書けるよう、研究を進めながら(無理のない範囲で)論文のための材料を準備しておくものだ。例えば証明や実験結果などは、それを完成させる段階で論文に貼り付けられるように準備しておくのが良い。また、日々のゼミ等で発表資料などを準備するだろうが、それに使う文章や図も、論文にそのまま使えるようにすると良いだろう。その他、日々の研究の過程で気がついたことや読んだ論文については、論文の材料になる可能性があるので、できる限りメモを残しておくのが良い。
いずれにせよ、「いつ論文を書き始めるのか」という問は基本的にはナンセンスだ。「気がついたら論文ができていた(文章の推敲等、完成度を高めるプロセスはともかくとして)」という状況を目指すべきである。
論文は長ければ良いというわけではないし、短いからまずいというわけでもない。しかし、卒業論文・修士論文にはある程度の分量がある方が無難だ。なぜなら、卒業論文・修士論文というのは、研究成果を報告するものではなく、卒業研究・修士研究の内容を論文の形式で報告するものだからだ。そもそも、卒業研究・修士研究は事前に期間が決まっているため、必ずしもまとまった研究成果が出るとは限らない。そのため、卒業研究・修士研究では主として「(研究成果が出うるような)正しいやり方で研究に取り組んだか、それが本人の実になっているか」が評価される。 よって、卒業論文・修士論文では自分が当該期間で行った研究を(多少脈絡がなくなっても)できる限り書くべきだし、そうすればそれなりの分量にはなるはずだ。
具体的にどの程度の分量が普通かは、研究テーマや分野等によって大きく異なる。ただ、私の過去の経験から言えば、私の分野では非常に大雑把に言って以下のような分量が平均的だろう。
ページ数だけでなく参考文献数にも言及していることに注意して欲しい。参考文献数は、既存の研究等をどの程度調べたかの一つの指標となるため、自分のやった研究プロセスの適切さをアピールするにはある程度欲しい。もちろん、意味もなく参考文献を引きまくるのは良くない。上記の基準を念頭に、これくらいの件数の参考文献が引ける程度に視野が広い研究を目指す(逆に言えば、特定の先行研究の改善のみに囚われない)、というのが良いだろう。
どのようなスタイルで論文を書くとしても、論文執筆にかかる時間は見積もれた方が良い。とはいえ、執筆にかかる時間は人によってかなり異なる。また、書いている部分によっても変わりやすい。例えば、一般的には「イントロダクション」の部分はよく考えながら書かなければならないので時間がかかり、「実験結果」の部分はデータを貼り付けたり事実を羅列したりするだけで書けるのでスピードが出やすい。
にもかかわらず、あえて大雑把な目安を出すとすれば、母語の一段組みの論文だとして「初稿の執筆に1ページあたり2-5時間」「初稿執筆終了後、修正・推敲に初稿作成と同程度の時間」ぐらいかと思う。例えば、30ページの一段組論文を書きたい場合、100時間程度で初稿が完成し、200時間程度で論文が完成するといった具合だ。論文執筆のみにほぼ注力することができるとして、初稿までに3週間、論文完成までに一月半という感じだろうか。
執筆速度は個人差が大きい上に、1ページあたりの文字数などにも当然依存する。自分の場合がどの程度なのかはある程度測っておくのが望ましい。特に、上記の基準より明らかに遅かった場合、締め切りに間に合わない(少なくとも指導教員の見通しどおりに行かない)可能性があるので、早急に指導教員と相談しよう。
なお、2段組の論文の場合、おおむね1段組の1.5倍程度の時間を要する印象だ。また、 外国語の論文の場合、その外国語への習熟度による差が大きいが、おおむね母語の2倍程度の時間がかかると考えておくと良いと思う。
論文を書いた経験が乏しい場合、論文を書くための「お手本」があったほうが良い。 お手本としては以下のような条件を満たすものが望ましい。まず、自分の研究に比較的近いテーマに対し、自分の研究と近いアプローチで取り組んだ論文であること。執筆するものが卒業論文なら修士論文、修士論文なら博士論文が望ましい。修士論文・博士論文で適当なものがなければ、できる限り広い読者向けに書かれた雑誌論文が望ましい。
研究を進めてゆく過程で、お手本になる論文も同時に探しておこう。なお、1本の論文だけでは自分にとってちょうど良い「お手本」にはならないかも知れない。可能なら複数論文を見つけ、「イントロダクションはこの論文、実験はこの論文……」とできるとより望ましい。
論文を執筆する前にはまず章立てを作成する。章立てに求められる要件は、端的に言えば「目次だけを見て論文の内容を想像できること」である。この要件を満たすために求められる注意をいくつか挙げる。
まず、章立ては論文の論理構造やストーリーに対応しなければならない。例えば、「先行研究を説明する章」や「基本的な概念を定義する章」に「本研究の成果」についての言及が含まれるのはおかしい。 また、大きく「手法の提案」と「提案手法に対する評価実験」という2つの貢献がある場合、手法の提案中に実験結果が出てくるのもおかしい。
次に、併置されている章や節は同程度の粒度であることが望ましい。例えば、ほとんどの論文では、序論・本論・結論という3章構成は適切でない。「本論」は「序論」や「結論」よりはるかに多くの内容を含んでいるはずである。 また「6.1 実験1, 6.2 実験2, 6.3 さらなる実験, 6.3.1 実験3, 6.3.2 実験4」というような構造も、基本的には避けるべきだ(「6.3.1 実験3a, 6.3.2 実験3b」という構造なら納得できる)。
さらに、少なくとも原則としては、章や節のタイトルはある程度説明的であるべきだ。例えば「提案手法」ではなく「Xを用いたYの提案」、「評価実験」ではなく「AシステムのBの評価」というタイトルを付けることを目指すべきだ。 実際、タイトルが簡潔すぎると、章立てからは論文内容が分からなくなる。 例えば「2章 手法A, 3章 手法B」という章立てだけからは、手法Aと手法Bがどのような関係なのかは分からない。手法Aを改善したものが手法Bかも知れないし、両者は同じ対象に対する全く異なる2つのアプローチかも知れないし、また対象の異なる手法Aと手法Bを組み合わせようとしているのかも知れない。もし「2章 手法A, 2.1 対象とする問題, ... , 3章 手法B, 3.1 対象とする問題, ...」となっていれば、両者は対象が異なるだろう。また、「2章 手法A, ... 2.4 手法Aの問題点, 3章 手法B, 3.1, 手法Aの問題点改善のための着想, ...」となっていれば、手法Bは手法Aの改善であることが分かる。
どの論文にも共通する定型的な要素(例えば「はじめに」と「終わりに」、「関連研究」など)については、「何の変哲もない『それ』ですよ」という意図でそのようなタイトルを使うことはある。これは、下手に凝ったタイトルをつけてその意図を深読みされてしまうのに比べれば良い場合もある。が、それ以外の選択肢がないかは常に検討すべきである。
論文にはいわゆる「パラグラフ・ライティング」と呼ばれる考え方がある。これは、段落のみについて適用できるものではなく、各章・節などの構成にも参考になる。実際、先ほど挙げた章立ての要件はまさに「パラグラフ・ライティング」の考え方に合致する。
研究は多くの場合複数の流れからなる。例えば「Aという課題にBという技法を適用した」という研究の場合、Aについての先行研究に対する改善という流れと、Bの技法の新しい応用例という流れがある。 これら複数の流れのうち、研究の意義を最も説明しやすいものを「本筋」として選ぶことになるだろう。 このとき、 (口頭発表とは異なり)特に卒業論文・修士論文では、本筋以外の流れ---つまり「脇筋」についても網羅的に語ることが望ましい。そのため、本筋・脇筋の区別が章立てから見て取れるような工夫が往々にして必要になる。間違っても本筋と脇筋が章立ての中で混乱してはならない。
例えば前述の「Aという課題にBという技法を適用した」という研究の場合、「Aという課題」についての説明の章に「AにBを適用する意義」を語る節があるのか、それとも「Bという技法」の章に「BをAに応用する意義」を語る節があるのかによって、本筋と脇筋の関係が変わる。前者ならAの研究が本筋、後者ならBの技法が本筋だろう。両方あった場合には少なくともその部分での判断は難しく、どちらもないのは論文としてやや不自然だ。
なお、「本筋」「脇筋」の区別は、自身の研究の経緯や苦労とは必ずしも一致しない。あくまで、研究成果から逆算し説明を選ぶべきである。
論文の冒頭部分(イントロダクション)は章立てと密接に関わっている。なぜなら、冒頭もまた「論文の要約を表し、そこを読むだけで論文の内容が大まかに分かる必要がある」部分だからだ。そのため、イントロダクションを書いてみることで、章立てが適切かを判断することができる。
端的に言えば、イントロダクションが章立てと対応しているかどうかを確認するのである。具体的にはまず、イントロダクションの各部分に対し、それに対応する具体的内容が現れる章・節を追記する。「本研究では手法Aと手法Bを組み合わせることで……」という文章を、「本研究では手法A(2章)と手法B(3章)を組み合わせることで……」とする、ということだ。そして、この追記を通して、以下のような問題を探す。
以上の点があると絶対にまずいと言うことはない。イントロダクションでは説明しきれない内容などもあってよい。とはいえ、以上の点を確認することでイントロダクションや章立ての改善に気づく場合は多い。例えば、イントロダクションで実験結果やその考察について全く言及しない人がいるが、これは原理原則としてはおかしい(と私は思う)。
なお、概要や論文要旨なども、基本的にはイントロダクションと同様だ。多くの場合、概要・論文要旨はイントロダクションの要約に対応し、分量としてはイントロダクション > 論文要旨 > 概要となることが多い。
論文は原則として「パラグラフ・ライティング」をすべきだと言われる。パラグラフ・ライティングとはある種の「思想」なので、それが具体的になんなのか、端的に述べるのは難しい。とはいえ、以下のチェックリストを確認すれば、結果的にパラグラフ・ライティングはかなりの部分実現できるだろう。
特に1番目の項目については注意が必要だ。自然に文章を書いていると、その段落で最も大事な内容が2文目以降になってしまうことは珍しくない。この場合、2文を1文にまとめる・倒置法を用いる等は(ケースバイケースではあるが)検討するに値する。
章立てやパラグラフ・ライティングの考え方は次のように一般化できる:論文の文章構造と論理構造は対応すべきである。これは、文章を構成する上での良いガイドラインとなる。論文では、その論理展開が複雑になりやすく、どんなに注意深く言葉を選んでも、言葉だけから論理構造を追おうとすると難しくなりやすい。そこで、文章構造から論理構造を推測できるようにすれば、読者の理解を大いに助けることになる。
パラグラフ・ライティング等の部分で、この考え方の具体例はすでにいくつも見た。ここでは追加として、論理的併置は構造上も併置であるべき、という例を挙げる。
手法Aと手法Bの比較を考える。このとき、「手法Aはintraprocedualかつflow-insensitiveである。手法Bはcorrect by constructionである。」というような比較は基本的に良くない。比較のためにはAの特徴とBの特徴を対比させる必要があるが、Aについては2つの、Bについては1つの特徴を挙げており、対応が文の構造からは明確でない。よりわかりやすくするためには、例えば「手法Aはintraprocedualかつflow-insensitiveという、比較的単純な手法であり、その正しさも容易に確認できる。手法Bはinterproceduralの複雑な手法であるが、correct by constructionである。」とすべきである。こうすれば、「intraprocedural + flow-insensitive」と「interprocedural」が対比されており、また、「correct by construction」が「正しさの確認」に関する論点であることが、それら単語の詳細な意味を知らずとも把握できる。
別の例として、「Xを行うが、もしPであればYも追加で行う。そうでなければZを行う。」という説明を考える。この文章の構造からはXとZが対比されているように見えるため、「Xには(暗黙の)実行条件があり、それが成り立たないときにZを行う」と読むのが自然になってしまう。ZとYのどちらかが実行されるようにするには、「Xを行う。もしPであればYを、そうでなければZを、追加で行う。」とすべきである。
論文を書き慣れていない人の「論文」には未定義の言葉が多発する。これは絶対に避けなければならない。
原則として、論文に現れるすべての専門用語はその意味が明確でなければならない。「コンピュータ」や「プログラミング言語」、「コンパイラ」のような言葉でも例外ではない。これらの言葉すら、論文中で使うなら定義(ないしはそれに準じる一定の説明)を与えるのが原則だ。ただし、例外的に、論文の読者にとって既知の概念については定義を省略できる。が、これは大変強い要求だ。その概念を知らない読者はその論文を読むに値しない、と切って捨てたに等しい。おいそれと使って良いものではない。
卒業論文・修士論文で定義を省略できる一つの基準は、その研究室に配属されるすべての学生がその概念を知っている(と想定して問題ない)、というあたりだ。例えば、その学科・専攻の必修講義で習うのであれば既知としてもよいだろう。とはいえ、特に卒業論文・修士論文では、必修の講義で習うような概念をちゃんと説明するのはむしろ望ましいことである。
なお、その論文中で明示的にすべての定義を与える必要はない。例えば教科書を参照し「基本的な定義についてはこの教科書に従う」と記述することで、定義に代えることもできる。(ただし、その場合にはちゃんとその教科書の定義に従うこと。たまに、教科書を参照しながら、その教科書とは別の定義を用いる不届者がいる。)
未定義語を避けるべきという原則に従うと、同じ概念を表す言葉は1種類に統一すべき、という規範が自然に導かれる。例えば、理由なく「関数」と「函数」が論文中に両方現れるのはおかしい。同様に、同じ論文中で「関数」「メソッド」「プロシージャ」などが混在するのもまずい場合が多いだろう。 文章表現として同じ言葉の繰り返しは避けるべき、という主張もある。この主張には同意できるところもあるが、論文に関して言えば、繰り返しの回避には細心の注意を払うべきだ。論文は名文である必要はない(名文が望ましいことは否定しない)。しかし、論文は論理的な明確さを絶対に手放してはならない。同じ概念に違う言葉を使う場合は、それらが同じ概念を指していることが読者に絶対に誤解されない場合に限るべきだ。
なお、定義さえすればどんな言葉を使っても良い、というわけではない。読者にとって直感に反する定義は避けるべきだ。例えば、標準的な語彙があるものについてはそれを使うべきだし、別の使われ方が標準的な語彙を特殊な概念の名前に使うべきではない。
事実と意見を区別せよ、というのはレポート執筆でもうるさく言われることだと思う。しかし、これを完璧にできている学生は少ない。例えば、何気なく「~と思われる」というような言い回しを使ってしまう人は多い。これは事実か意見(誰の?)か不明瞭なので避けるべきだ。少し気をつけている人は「~と言える」という言い回しになるかも知れない。これは論文でも使える表現だが、「事実」を表すことに注意すべきである。「(著者が)そう主張したい」という場合には使えない。いずれにせよ、やや不明瞭なので、「~である」に書き換えられないか検討すべきだ。
事実と意見の境界というのは往々にしてそれほど明確ではない。例えば「関数型言語は並列計算に適している」は、意見か事実か不明瞭だろう。このような文言も、極力「事実」か「意見」かが明瞭になる言い回しへの修正を目指すべきだ。例えば「しばしば『関数型言語は並列計算に適している』と主張される」という文言は、具体的な根拠を示すことができれば「事実」である。同様に、「純粋関数型言語では独立な部分式は独立に評価できる。このことは、並列計算を行う上でメリットである」は事実だろう。また、事実しか書いてはならない、というわけではない。「著者らは『関数型言語は並列計算に適している』と確信している」とか「著者らは『関数型言語は並列計算に適している』という仮説に基づき」などという文章は、論文に現れても全くおかしくはない。
次に、「事実」に対しては必ず根拠を示す必要がある。根拠は、多くの場合参考文献の提示が最も簡便である(そのこともあり、参考文献をたくさん調べておくのは非常に良いことである)。例えば、先ほど述べたように、「Hogeは『関数型言語は並列計算に適している』と主張している[1]」という文章は、根拠を伴っており、論文中に現れる文として自然である。
学生の論文を見ていると、「すべての事実に対して根拠を示すというのは『理想』であって、現実にはそうでもない」と誤解しているような印象を受けることが多い。これは全くの間違いである。すべての事実に対して根拠を示すのは、論文としての大前提であり、これができていないものは論文ではない。根拠を示せないような部分は、明示的に「意見」として表現しなければならない。
(少なくとも私の分野では)参考文献リストに現れているものは本文中で最低1回は参照しなければならない。そのため、本文中で明示的に参照できないものは参考文献リストに挙げられないし、また逆に、参考文献リストに挙げたい文献については参照方法まで含めて考える必要がある。
同じ文献を複数回参照することは全く問題ない。意味もなく何度も参照するのは避けるべきだが、異なる章・節であれば再度引くのは不自然ではない。たとえ同じ段落内であったとしても、例えば「Fuga [1] は……を提案した。Hoge [2]は……を提案した。これら手法の有用性はケースバイケースである[1]。」といった文章の場合、最後の[1]の参照なしでは両手法の比較が誰によるものなのかが不明瞭になってしまうため、この参照は必須である。
図・表についても、参考文献リストと同様、本文中から最低1回は参照しなければならない。 一方、定義・補題・定理・式などは、必ずしも参照が必須であるわけではない。 この違いは、「本文」が何を含むかに由来する。原則として、参考文献リスト・図・表は本文ではなく、形式上は付録に近い。そのため、それらには「それが本文にとって必要である」根拠を示す必要がある(そうでなければ付録に置くべきだ)。一方で、定義・式などは本文の一部である。そのため、それらはただ存在することができる。
本文であるか否かは、他にも多少影響がある。例えば、本文でないもの(特に図・表)はそれなしで本文が理解できる必要がある。そのため、実験結果を図表のみで終わらせることはできないし、その結果について分析するなら、ある程度明示的に図表の内容を本文中で説明しなければならない。 また、定義・式等は本文に含まれるため、本文執筆のルール(例えばパラグラフ・ライティング)の対象となる。例えば、2文に挟まれた式は、原則として文としての意味を持たなければならない。等式や不等式なら問題ないが、それ以外の式については注意が必要になる。
本文であるか否かという点は、上述の件に限らず様々な部分で現れるものなのでよく注意すること。例えば脚注や括弧書きは「本文」ではないので、原則として、それなしで文章となっていなければならない。よって、「この問題に対し、[1]では……を提案している」というような文章は、「[1]」は括弧書きにすぎないので、原則としては不自然である。とはいえ、(この例に限らないが)このように「やや不自然だが誤読の余地のない記法」が習慣上許容されていることもある。しかし、卒業論文・修士論文のような、ページ数に制限がなく、また読者の幅を広く想定するべきものでは、このような記法はできる限り避けることが望ましい。
フォントが異なるものは原則として異なるものとして扱う。例えば、プログラム中にタイプライタ体で表記したものを本文中から参照するときには、ローマン体やイタリック体を使ってはならない。この原則は高校数学等でもすでに現れている。例えば、黒板太字のRは習慣上実数全体を表すが、通常のRはそうではないだろう。また、同様にしてベクトルとスカラを区別することも標準的に行われている。
フォントが異なるものは異なる、という原則は、時に不便ではある。例えば計算量を論じるとき、プログラム中に現れる変数x(タイプライタ体)の値に依存するなら、オーダ表記中にタイプライタ体のxが現れてしまう。これを避けたければ(これがまずいわけではない)「(タイプライタ体の)xの値を(イタリック体の)xとし」等の記述を加えることになる。面倒だが仕方ない。
句読点としてどれを用いるかは、卒業論文や修士論文では基本的には著者が決めて良い。ただし、分野ごとの習慣がある場合も多いので、指導教員から指示があればそれに従おう。出版する論文の場合は、投稿先の雑誌等によって指定があるだろう。また、括弧として半角・全角いずれを使うかについても同様である。
半角の句読点・括弧を使う場合、その部分については英文の文章表記規則に従うのが常識的である。例えば、開き括弧は手前に閉じ括弧は直後に半角空白を入れ括弧の内側には空白を入れない、カンマ・ピリオドの後には半角空白を入れる、などである。英文の文章表記規則に不案内である(し調べる気もない)人には、日本語の句読点・括弧を使うことを勧める。
論文の執筆を補助する様々なツールやアプリがある。これらはもちろん活用すべきである。しかし、使い方には注意が必要である。
基本的かつ重要な考え方は、「自分がその結果の正しさを確認できた場合のみ使う」というものだ。論文に誤りや剽窃が含まれていた場合、どんなツール等を使ったに関わらず、著者はその責任を負わなければならない。そのため、ツールの結果をただ信頼するわけにはならない。 この状況はインターネット検索と同様と考えればよい。インターネット検索は、適切に使えば、論文の執筆に非常に役立つ。しかし、間違った内容も数多く含まれているので、結果を単に信頼することはできない。また、検索して見つかった文章をそのまま論文に書いてしまうと(適切な引用を行わない限り)剽窃になってしまう。
例えば、英語の論文を執筆する場合に、自動翻訳システムを利用するのは悪いことではない。しかし、自動翻訳の結果の信頼性はそれほど高くない。そのため、日本語を英語に翻訳する場合、自動翻訳の結果が「正しい」と確認できたとき以外は、それ論文の一部としてはならない。 以上が原則だが、現実的には、自動翻訳結果の正しさを自力で確認できるような人であれば、自力で書いたほうが早い。 そのため、「自分の書いた英語を日本語に翻訳し、適切な日本語になるかどうかを確認する」というほうが現実的な利用方法になるだろう。
英語の論文を執筆する場合には、文法チェックツールなども非常に有用である。非母語話者にとっては、文法規則の詳細を意識し続けるのと、生産性がかなり落ちてしまいかねないからだ。しかし、文法チェックツールの出力結果がおかしいことも少なからずある。特に技術的な文章では、専門用語や数式等の品詞を適切に推測できないことがままある。そのため、そのツールがなぜそのような指摘をしたのか、理由まで含めて確認する必要がある。
ChatGPTのようなAIツールも時に有用である。しかし、以下の点にはくれぐれも注意されたい。
私の分野ではLaTeX(ないしその拡張)を使って論文執筆をするのが標準的であるし、また簡便でもある。しかし、初見ではLaTeXの適切な使い方は分かりにくい。以下はいくつかの基本的なtipsを述べる。 なお、これはすでにLaTeXに習熟した人向けではない。あくまで、卒業論文・修士論文の執筆までLaTeXをほとんど使ってこなかった人向けである。
クラスファイル・スタイルファイルは(自分でちゃんとコントロールできるなら何でも良いのだが、良く分かっていないならば)日本語用のものを使おう。例えばjbookやjsbookを使うのは悪くないだろう。また、インターネットにも「卒業論文・修士論文用」と称したスタイルファイルが配布されているので、良さそうなものがあれば使うと良い。例えばsuribtは一つの選択肢になるだろう。
原則として、LaTeXでは改行・スペースは執筆者が自分で入力するものではない。LaTeXが自動的に挿入するのに任せておいた方がうまく行くことが多い。もし¥¥や~を多用する必要があるならば、それはLaTeXの使い方が(少なくとも)あまりうまくない。ましてや¥hspaceや¥vspaceは使わないものだと考えよう。
プログラミング言語分野の特殊事情としては、数式としてプログラムを記述し、その結果数式中に多量の¥¥や~が現れることがある。これは、LaTeXが想定していない数式を記述しているため、仕方ない部分があるが、異常なことだという認識は持った方が良い。
LaTeXでは数式は数式モード中で(例えば$で挟んで)記述する。これは見た目を整える行為ではなく、LaTeXというシステムに文書の意味を伝える行為なので、単に斜体するコマンド等とは明確に区別すること。例えば、本文中に変数xが現れるときは、(見た目上の差異がなくても)¥textit{x}ではなく$x$と書くのが適切だ。
数式モード中での英文字は原則としてすべて1文字の変数として扱われ、英文字の列はそれらの乗算として扱われる。例えば$xyz$はxyzという一つの変数ではなく「x かける y かける z」という意味の数式になる。もし複数文字からなる変数を使いたい場合には明示的にmathitコマンドを使う。
数式モード中では、ある範囲の記号は「二項演算子」として扱われ、その両側に適切な要素があった場合には適当なスペースが自動的に入る。例えば$1 + 2$では、+の前後に微妙な空白が入っているはずだ。ただし、二項演算子として扱って欲しいが扱われない記号がいくつかある。例えば、| は二項演算子でないので代わりにmidコマンドを使う。/ も二項演算子ではない。¥mathbin{/}とするのが良い。
複数行からなる数式で、縦に式をそろえたい場合にはいくつかの方法がある。代表的なものとしては、 array環境やeqnarray環境を使う方法、align環境を使う方法、phantomコマンドを駆使して適切な大きさの空白を挿入する方法、などがある。どの方法にも長短があるので、自分にとって使いやすいものを使えば良い。なお、どの方法を使っても、二項演算子に伴う空白が入り損ねる場合がある。例えば、alignを使った「& + 2」のような式では、+が左オペランドを取っていないので二項演算子扱いされない。「& {}+ 2」としよう。
参考文献リストはbibファイルとして作成し、bibtexを使って参考文献を生成しよう。なお、bibファイルに含める参考文献データはDBLPやACM Digital Libraryなどからダウンロードできるのでこれを使う(必要に応じて手を加えることもある)。このやり方は最初は少々面倒に感じるかも知れないが、参考文献数が増えてくると圧倒的に楽になる。また、すでに準備されたデータを使うことで細かいミスも減る。
図表(figure環境やtable環境)はh, t, bなどのパラメタで配置を決められるが、原則としてhは使わない。前述の通り、図表は本文ではないので、本文を寸断するように現れるのは基本的におかしい。もし本文途中に出したいなら、図表としてではなく式(の類)として出すべきである。
図は下に、表は上に表題を付ける習慣になっている。表題はcaptionコマンドを用いて設定し、直後にlabelコマンドを置くことで参照可能とすること。なお、プログラムは図として扱うのが普通だ。
図表に限らず、参照にはrefとlabelコマンドを使い、直接数字等は指定しない。また、参考文献はciteコマンドで参照する。 卒業論文・修士論文の規模になったときに参照がずれてしまった場合、手作業での修正は大変面倒だ。LaTeXの機能に頼ろう。
LaTeXが出すエラーには意図が分かりにくいものが少なからずある。インターネットで検索するのが解決の早道である。
LaTeXが出すwarningの中で頻出するものが2種類ある。一つが参照に関するものだ。「undefined references」は、未定義のものをrefで参照すると起こるが、ソースファイルを複数回LaTeXで処理すると消えることがあるので、まずはそれを試そう。「multiply-defined labels」は複数回同じ名前を定義すると起こる。実質的にはエラーに等しいので修正しよう(多くの場合refとlabelを間違えている)。
もう一つはoverfull・underfullだ。Overfullは単語等が文書の記述範囲からはみ出していることを表す。数ptのoverfullはできる限り、数十pt以上のoverfullは必ず、修正しよう。1pt未満のoverfullも修正できるならそうした方が良いが、卒業論文・修士論文では正直言って趣味の領域に近い。Undefullは逆に文書の記述範囲に比べ文章量が少なすぎることを表す。こちらはほとんどの場合は気にする必要はない。できあがった文章を見て、明らかに違和感があれば修正しよう(多くの場合、例えば図表や多段組の数式など、大きなものがあってうまく改ページが挿入できていないことが原因だ)。
LaTeXにはマクロの機能があり、使いこなせばいろいろ良いことがある。しかし、論文をどう書けばよいのか分かっていないような段階でマクロを使うのは、それほど有益ではないことが多い(有害とまでは言わないが)。マクロを使うのは、論文執筆の過程でどのようにLaTeXを使うことになるのか、見通しが立つようになってからでも遅くない。