2016-03-31

LaTeX で文章書きするときに知っておくと嬉しい n 個のこと


院生時代に後輩に向けて書いた Tips を少し改良して貼っておく。
自分に向けての備忘録的な立ち位置。



ただし、n は日本の中学教育における数学で定義されている自然数としておきます。
★の数が少ないほど、まず知っておいて欲しいこと。



[★☆☆] 表記ブレ

TeX とか関係ない。文章を書くときに気にしたほうがいいこと。
平仮名表記するか、漢字表記するかのブレ。文章内で統一すべき。
  • 「もつ」と「持つ」
  • 「いう」と「言う」
  • 「よい」と「良い」 (「いい」とかも気にしたほうがいいね)
などなど……思い返してみても、あんまり思い出せない件(笑)
あと、漢数字 (一、二、三、…) とアラビア数字 (1, 2, 3, ...) もね。これは、後に続く言葉との繋がりによって使い分けるのがいいかと。



[★☆☆] 括弧

表記ブレと同じレベルであるが、全角括弧「()」と半角括弧「()」のどちらを使うかという話。
統一すればどちらでもいいかなと。日本語文書の場合は全角括弧で統一されているのが普通な気がするが、自分は半角派。
どっちにしてもバラつくのはあまり格好良くない。特に開き括弧と閉じ括弧がいずれかに統一されていないのは、非常にみっともない。
もし半角括弧を使うのであれば、半角スペースも併用するべき。

upLaTeX (Unicode Publishing LaTeX) は、pLaTeX の Unicode 版。



[★☆☆] クォートのミス

Dumb Quotes、Stupid Quotes と呼ばれるやつ。ミスったら「バカ」とか「愚か」とか言われても何も言い返せない。
具体例としては、

”こんな書き方をしたら”

めちゃくちゃ恥ずかしいという話。

“このように書かないと”

いけない。……わかりづらいですね。日本語だったらこんな感じってこと。

」こんな書き方をしたら」
「このように書かないと」

Microsoft Office 系のアプリケーションは自動的に直してくれるので問題ないのだが、TeX だとミスりやすい。TeX では、Shift + 2 で表示される「" (ダブルクォート)」を使うと、文章内では「”」と表示されてしまう。例えば、

"こんな感じ"

に書くと

”こんな感じ”

になる。とてもカッコ悪い。
なので、TeX の場合は

``Good"

と書いてもいいが、理想は

``Excellent''

と書くのが正解。JISキーボードならば、頭のクォート「` (バッククォート)」はShift + @ で、終わりのクォート「' (シングルクォート)」は Shift + 7 で入力できる。
これまでの例はすべてダブルクォートだが、もちろんシングルクォートでも同じ。



[★☆☆] section*

みんな知ってるものだと思ってたのだけど、案外知らない人も多かったので一応。

\section{序論}

だと「1 序論」みたいになるが、

\section*{序論}

だと「序論」と、節番号が消えてくれる。

\part, \chapter, \section, \subsection, \subsubsection

のいずれでも使える。

余談であるが、\subsubsection の次は

\paragraph, \subparagraph

である。因みに番号はつかない。



[★☆☆] 図・表などの配置

論文において図・表などは、文章中に配置してはならず、ページ上部または下部に配置しなければならない。そのため、配置オプションとして [tbp] とすることを勧める。決して h = here は指定してはならない。[tbp] はそれぞれ t = top、b = bottom、p = page の意味だが、前にある方が優先度が高い。好みに合わせて並び替えるとよい。
一応サンプルを書いておくが、図であれば

\begin{figure}[tbp]
\centering
\includegraphics[width=.8\hsize]{sample.eps}
\caption{サンプル} \label{tbl:sample}
\end{figure}

表であれば

\begin{table}[tbp]
\centering
\caption{サンプル} \label{fig:sample}
\begin{tabular}{crr}
\hline
column 0 & column 1 & column 2 \\
\hline \hline
row 1    &   (1, 1) &   (1, 2) \\
row 2    &   (2, 1) &   (2, 2) \\
\hline
\end{tabluar}
\end{table}

というような感じ。



[★☆☆] 引用するときの注意

大したことじゃないけど、引用コマンド (?)

\cite{tag:2016}

を使うときには、前に半角スペースを入れるべき。つまり

Tag \cite{tag:2016} らは、……

とか

……である \cite{tag:2016}。

とするということ。
日本語ではスペースを入れる習慣がないので、入れてない人が多い。個人的には、「スペースは著者の心の余裕の現れ」だと思うので、余裕があるひとは是非。



[★☆☆] 数式モードは「align」で

equation, eqnarray といろいろと数式環境は存在しますが、align がいいらしい。
「アメリカ数学会 (AMS: American Mathematical Society)」が提供している環境らしく、一番よいのではないかとのこと。

\usepackage{amsmath,amssymb}

とパッケージを指定する必要がある (と思う)。使うときは

\begin{align} ... \end{align}

と使う。式番号を表示したくない場合には

\begin{align*} ... \end{align*}

を。特定の式に番号をつけたり消したりするときは

\tag{}
\notag

を使えばOK。



[★☆☆] 数式モードでの一続きの言葉を入れるときの注意点

数式モードでアルファベットで単語などを入力すると、1文字1文字が独立した文字として認識され、間延びした見た目になってしまう。そこで、数式モードのイタリックで記述できる

\mathit{}

を使う。
余談だが、数式モード内で普通の文字を入力したい場合には、数式モードのロマン体

\mathrm{}

を使う。ただ、イタリック体で書くべきではない sin, cos, tan, max, min などは、\sin, \cos, \tan, \max, \min で書けば万事解決なので、それほど使う場面はないと思う。
さらに余談だが、実数 R を書くときの白抜き (?) の文字は

\mathbb{}

で。



[★☆☆] 数式モードの括弧

数式にちょうどいいサイズの括弧を書きたいときがあると思う。そのときには、

$\left\{1, 2, 3, \ldots, n \right\}$

みたいな感じで書く。場合分けとかで、片側だけ括弧が欲しいときには

$\delta(x) = \left\{ \begin{array}{ll}
1 & x = 0 \\
0 & x \ne 0 \\
\end{array} \right.$

というように書けばよい。因みに「\right.」がないとコンパイルエラーが出ます。



[★☆☆] 中央揃えコマンド

ざっくりいうと、

\begin{center} ... \end{center}

より

\centering

を使うべきという話。スペースの空き方が違うらしいが、新しいのは \centering。
つまり、こんな感じで使うという話。

\begin{figure}[tbp]
\centering
\includegraphics[width=.8\hsize]{world-map.eps}
\chaption{世界地図} \label{fig:world-map}
\end{figure}



[★★☆] フォントスタイル変更時のコマンド

どちらを使っても問題はないのだけど、フォントのスタイルを変える TeX コマンド

\bf, \it, \rm, \sl, \tt

より、新しい LaTeX コマンドの

\textbf{}, \textit{}, \textrm{}, \textsl{}, \texttt{}

を使ったほうがいいよ、くらいの話。知らなくても問題ないっちゃない。



[★☆☆] - と -- と ---

「ハイフン」と「エンダッシュ」と「エムダッシュ」とそれぞれ呼ばれる。
ハイフンは普通のハイフン。単語同士を繋ぐときに。

e-pTeX

エンダッシュは、日本語でいうところの「~」。郵便番号や電話番号のハイフンもコレらしい。

pp. 123--234
# 「pp.」のあとには半角スペースを。そうそう、「pp.」は「pages」って意味。1ページだけなら「p.」ってしないとダメですよ。

エムダッシュは、コレ→「―」。

LaTeX で文章書きするときに知っておくと嬉しい n 個のこと---これでキミも LaTeX マスターに!

いずれの場合も前後にスペースは入れない (構文的には問題ないが、文字の使い方的にスペースを入れてはいけない)。



[★★☆] デフォルト画像フォルダを指定する

\includegraphics で画像を取り込むとき、取り込む画像を指定するわけだが、figures フォルダ内にある figure1.eps を参照したいときには

\includegraphics{figures/figure1.eps}

と指定する必要があるが、プリアンブルで

\usepackage{graphicx}
%\usepackage[dvipdfmx]{graphicx}% for dvipdfmx user
\graphicspath{ {./figures/} }

と指定しておけば、

\includegraphics{figure1.eps}

と参照できるようになる。例えば、画像内容ごとに複数フォルダに画像データを分けたときには

\graphicspath{ {./figures-a/} {./figures-b/} {./figures-c/} }

みたいにして、それぞれのフォルダに適当に画像ファイルを放り込んでおけばいい。



[★★☆] List 環境 (Itemize, Enumerate, Description) のスペースのカスタマイズ

学会、シンポジウム、研究会、学内発表…… ==ただでさえ書ける量が少ないのに、無駄に空白スペースの多いデフォルトスタイルの==スペースを減らして文量を確保したいときがある。
そんなとき、

\setlength

をちまちま使ってスペースを弄ってもいいんだけど、enumitem パッケージを使うとよい。

\usepackage{enumitem}

例えば、こんな感じで使う。

\setlist{topsep=4pt,partopsep=0pt,parsep=0pt,itemsep=0pt,leftmargin=2zw}

こうすると、結構スペースが確保できる。



[★★☆] URL を記述する

ベタ打ちしてもいいんだけど、アンダースコアが入っているとコンパイルエラーが出たり (数式モードでの下付き文字専用のため。アンダースコア自体は「\_」と入力すれば入力は可能。)、パーセントが入ると途中からコメント文になって、面倒なことが多々ある。そのため、プリアンブルに

\usepackage{url}
\urlstyle{same}% url package font

と予め書いて、URLパッケージを導入し、あとは

\url{http://www.google.co.jp}
みたいな感じに書けばOK。



[★★☆] 構文ミスはない筈なのにコンパイルエラーが出る

aux ファイルを消して、再コンパイルしてみよう。
dvi, out, log, toc, lof, lot あたりも一時ファイルなので、この辺を消さないといけない場合もあるかも。



[★★☆] 単位を書くときのスペース

例えば、「光速は 299,792,458 m/s である。」と書きたい場合、

光速は 299,792,458\,m/s である。

と書かなければならないらしい。つまり、数値と単位の間に小さいスペース (\,) を入れるということ。
数式モードなら、こんな感じか?

光速は $299,792,458\,\mathrm{m/s}$ である。

ついでに言っておくと、% (パーセント、TeX だと \%) の場合にはスペースを入れてはいけない。



[★★☆] 埋め込む画像はできればベクタ画像で

EPS (Encapsulated PostScript) ファイルは知っているはずだし、使っている人も多いはず。
論文への埋め込みの際、EPS にどのように変換しているかは人それぞれだと思うが、ラスタ画像ではなく、ベクタ画像で埋め込むべき。
もちろん写真はラスタ画像でいいが、幾何学による画像はベクタ画像がいい。容量的に軽量だし、どんだけ拡大しても綺麗、PDF との相性バツグン、埋め込み方によっては図内の文字も文字として認識できて嬉しい。

また、DVI から PDF への変換に dvipdfmx を使っている場合には、\includegraphics で PDF ファイルを図として直接埋め込むことも可能。



[★★★] マクロ

毎回同じ処理をさせるとかあれば、マクロを使おう。

■ マクロの定義の仕方

定義の仕方は、TeX 流なら

\def

LaTeX 流なら

\newcommand (新コマンド定義用)
\renewcommand (既存コマンド再定義用)

を使う。
例えば、List 環境 (Itemize, Enumerate, Description) 内で改行時に「改行 + 1文字分のスペースを開ける」コマンド \listlinebreak を定義したい場合には、

\def\listlinebreak{\mbox{}\newline\hskip.961em}



\newcommand{\listlinebreak}{\mbox{}\newline\hspace{.961em}}

のようにすればよい。 (どちらも同じ。.961em なのは、LaTeX では (jsarticle では?) 日本語を 0.961 倍で配置しているようなので。)


■ 引数を取り方

\def の場合には、使いたい引数の数を #1#2... と {} の前に書き、#1, #2, ... で参照する。

\def\commandname#1#2{ ... #1 ... #2 ... }

\newcommand ならこんな感じ。

\newcommand{\commandname}[2]{ ... #1 ... #2 ... }

例えば「図1」って書きたいときに

図~\ref{fig:1}

って書くと思う (「~」は、改行されないスペース)。もちろん、これでもいいんだけど、論文投稿なんかで「図」ではなく「Fig.」とかにしなきゃいけないときに結構厄介だし、毎回「図~」って書くのもめんどい。そこで、

\def\figref#1{図~\ref{#1}}

って定義しておくと

\figref{fig:1}

って書けば済むようになり、「Fig.」に変更するなら、

\def\figref#1{Fig.~\ref{#1}}

って書き換えて、コンパイルし直せば済む。
とりあえず、下の内容をそのままプリアンブルに書き込んどくと嬉しいことがあるかも。

\newcommand{\chpref}[1]{\prechaptername\,\ref{#1}\,\postchaptername}
\newcommand{\seclabel}{節}
\newcommand{\secref}[1]{\ref{#1}\,\seclabel}
\newcommand{\figlabel}{\figurename}
\newcommand{\figref}[1]{\figlabel~\ref{#1}}
\newcommand{\tbllabel}{\tablename}
\newcommand{\tblref}[1]{\tbllabel~\ref{#1}}
\newcommand{\eqnlabel}{式}
\newcommand{\eqnref}[1]{\eqnlabel~(\ref{#1})}


■ マクロの各行末にやたらとついている「%」の謎

「%」はコメントを表す文字ということはよくご存知かと思う。
クラスファイルやスタイルファイルを弄り始めると、やたらと「%」が行末に付いている状況がある。ハッキリいって、意味があるのかわからないと思う。
調べてみたら、改行文字をコメントアウトしているらしいのである。つまり、本来は改行せず、そのまま書き連ねるべき部分を、可読性の面から改行しているときに「%」をつけることで改行文字がないように認識させているそう。



[★★★] 自作スタイルファイル
よく、\usepackage で参照しているアレ。マクロを使いこなし始めたらコレも使えるとよりベスト。
よく使うマクロ、よく使うパッケージ等を書き込み、拡張子を .sty として、TeX のソースと同一フォルダに配置し、TeX ソースのプリアンブルで

\usepackage{}

を使って作成したスタイルファイルを取り込めばいつもと同じ環境で作業ができたりする。過去に作った TeX ソースからコマンドをコピーしてきて……とやるより、自作のスタイルファイルをコピーして取り込む方が TeX のソースもスッキリするはず。

他にもマクロに関していろいろあるんだけど、それは自力で調べてもらって。

0 件のコメント :

コメントを投稿