TeXは組版ソフトと呼ばれるもののようで,数式を含む文章をきれいに出力する際に重宝するが,慣れるのには努力が必要で覚えなければいけないこともいくつかある.

install

最近はTexLiveというものをインストールすればちょちょいのちょいで使えるようになる.便利なもんです. TexLiveをインストールすると,

 /usr/local/texlive

以下に2012のようなディレクトリと,texmf-localというディレクトリができる. このtexmf-localディレクトリに様々な設定の変更を加えていく.

スタイルファイルのインストール

 /usr/local/texlive/texmf-local/tex/latex/local/

以下にスタイルファイルを置き,

$ sudo mktexlsr

とすれば良し.


verbatim環境内で文字に色付け

fancyvrb.styを用いる.おそらくデフォルトでインストールされている.プリアンブルには,

 \usepackage{fancyvrb}
 \usepackage[usenames]{color}

と書く.引き数をとるコマンドはVerbatim環境内で使えないので,

 \newcommand{\vrbred}{\color{red}}

とコマンドを定義しておく.

\begin{Verbatim}[frame=single,commandchars=\\\{\},fontsize=\small]
      program hoge
{\vrbred{c comment line!!!}}
      implicit none
{\vrbred{c number of atoms}}
      integer:: natm
\end{Verbatim}

のようにする.{\vrbred c comment line!!!}のように内部の括弧は不要だが,vrbredと次の文字の間にあるスペースが,verbatim環境ではそのまま出力されるので注意.

参照:


〇に数字を入れる

\textcircled{\scriptsize 1}

のようにすれば良し.scriptsizeにしないと数字がはみ出して見苦しい.


図の回り込み

wrapfig.styというスタイルファイルを読み込めば,wrapfigure環境が使えるようになる. これで文章を図の回りに回り込ませることができる. しかし,itemiseやenumerateと一緒に使うと変になる.

プリアンブルに

\usepackage{wrapfig}

と加えておいて,本文で,

\begin{wrapfigure}{r}{.5\textwidth}
  \centering
  \includegraphics[width=\linewidth]{./figs/hoge.pdf}
  \caption{hogehoge.}
\end{wrapfigure}

のようにすることで,右半分の領域に図を入れ,文章を回り込ませることができる.


行間を一行空けて(double-space)文章を書く

\renewcommand{\baselinestretch}{2.0}

\で改行したところの行間の調整

hogehoge\\[5mm]

のように,\[5mm]とすると,その改行の部分が「通常の行間+5mm」になる.


文献参照の形式を上付きカッコにする

\usepackage[superscript]{cite}

参照の形式を上付きかつカッコで閉じる

\usepackage[superscript]{cite}
\makeatletter
\def\@citess#1{\textsuperscript{#1)}}
\makeatother

ベクトルを太字で書く

\usepackage{bm}
$\bm{r}$

ただし,数式フォントにeulervm?を使用している場合は,ベクトルだけ斜体になるのは変なので,単に\mathbfとした方が良いと思う.


文書のレイアウト設定

\setlength{\topmargin}{20mm}
\addtolength{\topmargin}{-1in}
\setlength{\oddsidemargin}{20mm}
\addtolength{\oddsidemargin}{-1in}
\setlength{\evensidemargin}{20mm}
\addtolength{\evensidemargin}{-1in}
\setlength{\textwidth}{170mm}   % 210 - (20+20)
\setlength{\textheight}{232mm}   % 297 - (20+40)
\setlength{\headheight}{0mm}
\setlength{\headsep}{0mm}
\setlength{\footskip}{0mm}

itemize, enumerateの項目間隔の変更

\begin{itemize}の直後に,

\setlength{\baselineskip}{.1cm}  % 段落間の高さ
\setlength{\itemsep}{2zh}  % 項目間の高さ

のように書く. ここを参考にせよ


dvipdfmxのフォント設定

LaTeXでタイプセットしたのものは最終的にdvipdfmxを経由してPDFに変換するので,dvipdfmxのフォント設定が最後の見栄えに反映される. 現在の私の設定(MacOSX + pLaTeX)では,/usr/local/share/texmf/fonts/map/dvipdfm/hiragino.mapに,

rml  H HiraMinPro-W3.otf
gbm  H HiraKakuPro-W3.otf
rmlv V HiraMinPro-W3.otf
gbmv V HiraKakuPro-W6.otf

と書いておいて,/usr/local/share/texmf/fonts/map/dvipdfm/cid-x.mapがそれをリンクしている. そして,/usr/local/share/texmf/fonts/opentypeディレクトリに,

lrwxr-xr-x  1 root  wheel  44  3 29  2008 HiraKakuPro-W3.otf@ -> /Library/Fonts/ヒラギノ角ゴ Pro W3.otf
lrwxr-xr-x  1 root  wheel  44  3 29  2008 HiraKakuPro-W6.otf@ -> /Library/Fonts/ヒラギノ角ゴ Pro W6.otf
lrwxr-xr-x  1 root  wheel  50  3 29  2008 HiraKakuPro-W8.otf@ -> /Library/Fonts/ヒラギノ角ゴ Pro W8.otf
lrwxr-xr-x  1 root  wheel  44  3 29  2008 HiraKakuStd-W8.otf@ -> /Library/Fonts/ヒラギノ角ゴ Std W8.otf
lrwxr-xr-x  1 root  wheel  44  3 29  2008 HiraMaruPro-W4.otf@ -> /Library/Fonts/ヒラギノ丸ゴ Pro W4.otf
lrwxr-xr-x  1 root  wheel  44  3 29  2008 HiraMinPro-W3.otf@ -> /Library/Fonts/ヒラギノ明朝 Pro W3.otf
lrwxr-xr-x  1 root  wheel  44  3 29  2008 HiraMinPro-W6.otf@ -> /Library/Fonts/ヒラギノ明朝 Pro W6.otf

のように,フォントへのリンクが置いてある.

'''tetex'''の場合には,フォントの設定にupdmapというコマンドを用いるようで,

$ updmap --setoption kanjiEmbed hiragino

とすると,./texmf-var/fonts/map/dvipdfm/updmap/kanjix.map というファイルが作成される.

TexLive2012を使用している場合は,

 /usr/local/texlive/texmf-local/fonts/opentype/

内のhiraginoやらkozukaやらシステムにあるフォントのフォルダを作りリンクを貼る. そんでもって,

$ sudo updmap-setup-kanji hiragino

のようにすると,システム全体でヒラギノフォントを使用するようになる. さらに,

$ updmap

とすることで,

~/Library/texlive/2012/texmf-var/fonts/map/dvipdfmx/updmap/kanjix.map

が作成され,そこにユーザのフォントマップが作成される.これは直接編集するなと書いてあるが,例えば,ゴシック体のデフォルトフォントを太くしたいときなどは,直接編集するしかないような気がする...

TeXLive2015での設定 (151006)

$ sudo kanji-config-updmap-sys hiragino

として, 後は,latexファイル内に

\usepackage[bold]{otf}

と書いておけば,bold-faceに対してちゃんと太いフォントが使われる.


ソースコードの表示 ---listings---

コンピュータ関連の説明には時々ソースコードを表示する必要がある. 見栄えの良いソースコードの表示のためのスタイルファイルとして'''listings'''というのがあるらしい.

などを参照.

とりあえず,

\usepackage{listings,jlisting}

とパッケージを読み込んでから,Fortran77用の設定

\lstset{language=[77]Fortran,
  basicstyle=\ttfamily\footnotesize,
  commentstyle=\textit,
  classoffset=1,
  keywordstyle=\bfseries,
  frame=tRBl,
  framesep=5pt,
  showstringspaces=false,
  numbers=left,
  stepnumber=1,
  numberstyle=\scriptsize,
  tabsize=2
}

を記述しておくのが良い感じ. そして,latexファイル内にソースを書き込む場合,

\begin{lstlisting}[caption=放物運動のシミュレーション,label=code:parabola]
c234567890一様重力場における放物運動
      implicit real*8(a-h,o-z)
      ......
}

のようにしておくと良い. 外部ファイルを読み込む場合は,

\lstinputlisting[caption=キャプション,label=ラベル]{外部ファイルのパス}

とします.

PNGファイルの挿入

PNGファイルもEPSファイルと同様にincludegraphicsで読み込むことができるが,bounding box情報がないと画像のサイズが分からない. ebbというコマンドで,bounding box情報を作成して,hoge.pngに対し,hoge.bbというファイルを作成する. この時,hogeがhoge.hogeのように「.(ピリオド)」を含んでいると,hoge.hoge.bbをLaTeXが認識してくれない...

文書作成におけるBibTeXの使用

文書を書く際には,引用文献をいくつも追加していくことになる.また,論文を校正していくと引用する順番が入れ換わることもしばしばある.そういうときに,文献を,

\begin{thebibliography}
\bibitem{foo1998} Foo, Hoo, and Woo; On the Foo and Woo, Transactions of Woo, 99 (1998) pp.1999-2000
\end{thebibliography}

のように書くよりは,「ref.bib」のようなファイルに,

@article{Safran:1979p2549,
author = {S A Safran and D R Hamann}, 
journal = {Phys. Rev. Lett.},
title = {Long-Range Elastic Interactions and Staging in Graphite Intercalation Compounds},
number = {21},
pages = {1410---1413},
volume = {42},
year = {1979},
month = {Aug},
date-added = {2010-08-04 18:00:35 +0900},
date-modified = {2010-08-04 18:01:43 +0900},
local-url = {file://localhost/Users/kobayashi/work/Papers/1979/Safran/Phys.%20Rev.%20Lett.1979Safran.pdf},
uri = {papers://AC047046-DD16-416B-B930-953DB22530C3/Paper/p2549},
read = {Yes},
rating = {0}
}

のようなエントリーを書いておいて,

\bibliography{ref}

と,そのファイルを指定してやり,

$ pbibtex main

のように,「main.tex」なら「main」を指定してpbibtexを実行する.(pbibtexというのは2009年頃にjbibtexから名前が変更されたようで,同じものらしい.bibtexの日本語対応版.) このメリットは,

  • 自動的に参考文献が生成される.引用されなければ参考文献として表示されないし,引用の順番が変更されれば,参考文献でのリストの順序も変更される.
  • 参考文献のスタイルを変更したら,すべてが自動で変更される.

minipage内でのインデント

minipage環境の中ではなぜかインデントされなくて困ったことがあった. minipage環境に入った直後に,

  \parindent=1zw

と書いておくと,インデントされるようになった.

hyperrefを使ってハイパーリンク

\usepackage[dvipdfmx]{hyperref}
\usepackage{pxjahyper}
\hypersetup{%
 bookmarksnumbered=true,%
 hyperfootnotes=false,%
 colorlinks,%
 linkcolor=blue,%
 citecolor=violet,%
 urlcolor=blue,%
 setpagesize=false,%
 pdftitle={pmdマニュアル},%
 pdfauthor={Ryo KOBAYASHI},%
 pdfsubject={},%
 pdfkeywords={pmd; molecular dynamics;}}

pxjahyperを使用することで,日本語のdvipdfmx環境でも目次にハイパーリンクを設定することができるのかな?

Supplementary information用の番号形式変更

論文のSupplementary informationでは図や表に「Fig. S1」「Table S1」のように,番号前に「S」をつけることが多いので,これを実現するには,プリアンブルに次を加えればよい.

\renewcommand{\thefigure}{S\arabic{figure}}
\renewcommand{\thetable}{S\arabic{table}}