Breezin'

オタクSEの日常のノウハウやチラ裏

卒論・修論執筆用LaTeX小技メモ

TeXで論文書く上で,毎回忘れては調べ直すも,知識が散逸していて分かりづらい細かな小技について俺用メモ.
ちなみにWindowsで偉大なTeXインストーラを使って楽々導入後,TeXWorksで書いてるので,使い方や書き方の知識はあってもTeXの構造等の基礎知識は不足している.

フォントの変更

標準のIPAフォントが嫌いすぎるのでヒラギノにする.
見出し:ヒラギノ角ゴPro-W6
本文:ヒラギノ明朝Pro-W3
のタイプセットがあるのでこちらがオススメ(マカーと同じ).

TeXWorks起動→編集→設定→タイプセット→編集
プログラムの部分に

C:/w32tex/bin/pdfplatex_hiragino.bat (任意のフォルダ)

を指定.

後から気づいたけどTeXインストーラによるインストール中にも設定可能っぽい.

※インストールされているフォントファイル名がHiraKakuPro-W6.otf, HiraMinPro-W3.otfじゃない場合,batを書き換えるかこの名前のフォントファイルをディレクトリにぶち込まないとエラーが出るので注意.

PNGを読み込み可能にする

PNGをそのまま扱う場合,プリアンブルに

\usepackage[dvipdfmx]{graphicx}

でOK.
画像の扱いについては卒論時にも色々試したけど,最終的にSnipping ToolPNG保存してそのまま読み込むのが一番速いと結論づけた(意識低い).
epsとかいうクソみたいな形式なんて使ってられるか!
pdfだとコンパイルが速くなるらしいけど,ファイルを一々考慮する手間を考えるとそのままでいいや.
gnuplotとか使うなら効率的な方法は色々あるんだろうけど,現状様々な理由があってデータ処理は全部Windows上のExcelでやっているし.

表の罫線の太さを変える

TeXの表の記述の仕方って何気にめんどい.
1回記述してしまえばコピペ改造するだけだけど


通常の罫線は\hlineを重ねれば良いだけだが,罫線の太さはそのままだと変えられない.
そこで

\newcommand{\bhline}[1]{\noalign{\hrule height #1}}

をプリアンブルに記述し,

\hline の代わりに \bhline{1.5pt}(任意の太さ)

を使用する.

※縦線はarray.styが必要など少々めんどいっぽい.論文中の表には基本横線しか使わないタイプなのでまあええやろ.

ソースコード貼り付け

情報系マンやシミュレーションマンはコードを貼り付けることで見た目をそれっぽくするとともに「僕頑張りました!」感が出せる.
どんどん貼り付けてページ数をガンガン稼ごう.
ただし変数宣言やファイル出力などのどうでも良い部分は省略して主要カーネル部のみにした方がいいだろうが.

listingを日本語に対応させたjlisting環境を使用する.
インストール方法は以下の記事が詳しい.
jlistingでソースコードを綺麗に表示する - mallowlabsの備忘録

\usepackage{listings, jlisting}

で宣言.

\renewcommand{\lstlistingname}{コード}

とプリアンブルに記述することでキャプションをコードx.xにすることが可能.

見た目については,今時Fortranを使っているため,どこかのサイト(忘れた.ありがとうございます.)を参考にして

\lstset{language=Fortran,
        basicstyle=\footnotesize,
        commentstyle=\textit,
        classoffset=1,
        keywordstyle=\bfseries,
	frame=tRBl,framesep=5pt,
	showstringspaces=false,
        numbers=left,stepnumber=1,numberstyle=\footnotesize,
	escapechar=\@
	}

のようにした.

ちなみに,escapecharを設定すると@(任意の文字)で囲んだ部分について,TeXのコマンドを認識するようになるので,コード中の強調したい式だけ色を変えることなどが可能となる.

以下に記述例と出力をそれぞれ示す.

\begin{lstlisting}[caption=加算]
  integer n, ndim, i
  real tnk(ndim), mnk(ndim), sex(ndim) 

  do i = 1, n
	@\textcolor{red}{sex(i) = tnk(i) + mnk(i)}@
  enddo
\end{lstlisting}

f:id:pulltuas:20170105190617p:plain
綺麗ねえ...(花火を眺める美樹さやか風に)
escapechar内の文字サイズや間隔が少し気になるが割りとどうでもいい.
\large, \hspace{xpt}なりで変えればいいかも.

ソースコード目次

コードが多い論文だと図目次(\listoffigures)・表目次(\listoftables)だけでなくコード目次もあると見た目がキレイになる.目次毎にclearpageしてやればページ数も稼げるぞ!
listingのリスト機能を使って

\lstlistoflistings

と書くだけでOK.
名前を変更したい場合は

\renewcommand{\lstlistlistingname}{コード一覧}


その他色々あるけど重要なのはこれくらい.
気が向いたらメモしておく予定.

TeXには細々したテクニックが多くて面倒なので,これから卒論書くマンは研究室に代々伝わるスタイルファイルを流用したり,先輩に元ファイル一式を貰って自分の内容に改造していくなりした方がいいと思う.
ちなみにWordに逃げるのは勧めない.体裁が綺麗に整って「論文に見える」まで行き着くための労力や微調整が(個人的に)これ以上に半端ないので.