TeX に関する Tips

[戻る]

○ はじめに

相変わらず TeX, しかも documentstyle (class でない) フォーマットで 文献を書いてます. 大体は適当なスタイルファイルをダウンロードして使いますが, たまにスタイルファイルがない時があります. その際は適当に, 過去に作ったソースとか, 座右の書: LaTeX トータルガイド (秀和システムトレーディグ株式会社, 伊藤和人著) とか, ネットを彷徨って適当に作るんですが, 毎回調べるのも何なんで Tips を少し書いておきます.

○ 数式のボールド体

数式中, ベクトルや行列を表す変数などボールド体で書きたいことがあります.

\newcommand{\vect}[1]{\mbox{\boldmath $#1$}}
と定義しておくと, \vect{} でその間がボールド体になります.

○ section, subsection の文字の大きさ

jarticle における section の文字の大きさは必要以上にでかいです.

\makeatletter
\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus -.2ex}{2.3 ex plus .2ex}{\large\bf}}
\makeatother
と書くと, 小さくなります.

なお, このように makeatletter〜makeatother で括らないと

! You can't use `\spacefactor' in vertical mode.
\@->\spacefactor 
             \@m 
l.72 \section
             {ほげほげ}
? 
! Emergency stop.
といった感じのエラーがでて悩みます.

subsection の場合も同様に

\newcommand{\subsection}{\@startsection{subsection}{2}{\z@}{1.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}{.5\Cvs \@plus.3\Cdp}{\reset@font\large\bfseries}}
の文字サイズ指定をいじればいい.

なお, section の定義と subsection の定義の書式がかなり違うが, これは section に関してはネットから拾ったもの (おそらく古い), subsection に 関しては jarticle.cls からコピーしたものだからです.

○ section, subsection の中央寄せ

上記の def\section における文字サイズ指定の前にでも

\centering
と書くとよろしいです.

○ section, subsection の前後空白

jarticle だと section, subsection の前後は必要以上にスペースがありますが, 同様に section の場合

\def\section{\@startsection {section}{1}{\z@}{ -0.1ex plus 2ex minus -.2ex} {0.1ex plus .2ex}{\large\bf}}
という風にすればいいようです (一つ目が前で二つ目が後ろ).

ただし, section の位置によってはあまり改善されません.

○ section 直後の字下げ

section の定義によっては, 第一段落が字下げされないで始まる時があります. これは

\def\section{\@startsection {section}{1}{\z@}{ 2.3ex plus 2ex minus -.2ex}{2.3 ex plus .2ex}{\large\bf}}
っと, 定義をいじればいいみたいです (正にする).

○ 図の前後の空白調整

\abovecaptionskip=-3pt
\belowcaptionskip=-10pt
といった感じのフレーズを入れる.

○ 箇条書きの行間調整

\begin{itemize/enumerate} の後に

\itemsep -1mm
といったフレーズを入れる.

○ 印刷範囲の指定

topmargin oddsidemargin evensidemargin textwidth textheight
を適当に指定する.

○ ニ段組

\twocolumn[
二段組にしない領域
]
以降二段組
てな感じ. 二段組にしない領域では, 改行幅を個別に指定する \\[3mm] とかいう フレーズが使えない. また, 二段組の幅は columnsep で指定可能. すなわち, 一段あたりの幅は (textwidth-columnsep)/2 となる.

○ 参考文献の形式

thebibliography で例えば「文献」としたい場合は

\renewcommand{\refname}{文~~~献}
とでもするとよい.

引用が [1][2] となっているのを右肩に 1) 2) といった形式にしたいのであれば

\makeatletter
\def\@cite#1{\textsuperscript{\footnotesize{#1)}}}
\makeatother
てな感じのものを書く. その場合、\makeatletter〜other 内に
\def\@biblabel#1{\hbox to 1.5zw{\hss #1)}}
も入れとくと, 統一感が取れる.

○ 図表の名称変更

図や表で caption を指定すると, 昔は Figure n:, Table n:, 最近は図 n:, 表 n: と表れますが, この図や表の文字列を変更したい時があります.

LaTeX トータルガイドによると makecaption の定義をいじらねば駄目と 書いていましたが, 最近のε系では以下のコマンドでいいようです.

\renewcommand{\figurename}{ず}
\renewcommand{\tablename}{ひょー}

○ 表題の和英併記

図や表を和英で併記して書く必要がある時があります. けっこういいかげんですが, こんな感じである程度できます.

\makeatletter
\def\fnum@Jfigure{図}
\def\fnum@Efigure{Fig.}
\def\fnum@Jtable{表}
\def\fnum@Etable{Tbl.}

\newcommand{\dcaption}[2]{
\addtocounter{\@captype}{1}
\vskip\abovecaptionskip
\begin{center}
% 日本語
\csname fnum@J\@captype \endcsname~
{\bf \csname the\@captype \endcsname} #1 \\
% 英語
{\bf \csname fnum@E\@captype \endcsname~
\csname the\@captype \endcsname} #2
\end{center}
\vskip\belowcaptionskip
}
\makeatother

使い方はソース中に \dcaption{日本語}{英語} っといった感じです.

○ 長い図表の題

特に横文字表記では, 図表題が長くなりがちです. 標準では二行目以降が図 n などと書かれた真下から始まります. それを是正する方法です. これまたけっこういい加減ですが...

\makeatletter
\newlength\lcapwidth

\renewcommand{\caption}[1]{
\setlength\lcapwidth{\linewidth}
\addtolength{\lcapwidth}{-5zw}
\addtocounter{\@captype}{1}
\vskip\abovecaptionskip
\begin{center}
\csname fnum@\@captype \endcsname :~
\begin{minipage}[t]{\lcapwidth}
#1
\end{minipage}
\end{center}
\vskip\belowcaptionskip
}
\makeatother

○ 入れ子の分数

例えば \frac{\frac{a}{b}}{c} などと 入れ子の分数を書くと, c に比べ a, b が小さくなって美しくありません. その場合,

\frac{\displaystyle \frac{a}{b}}{c}
と書くとよい. もっともこの例では (a/b)/c なのか a/(b/c) なのか見にくくなってしまうが, 式が適切ならそれなりに見える.

ただし, 分数全体を括弧で括っていた場合, 括弧の大きさが不自然になるため,

\left( \frac{\displaystyle \frac{a}{b}}{c} \right)
といった感じで書かないといけない.

○ URL のチルダの入れ方

例えば http://hogehoge.com/~hoge/ と書く時はこんな感じにする

{\tt http://hogehoge.com/\~{}hoge/}

○ フォントサイズ

ここは何ポイントの文字を使えという指定があることがありますが, TeX では数値でなく small, normalsize, large などで指定するためよく分かりません. という訳で対応表です.

documentstyle での指定なし(10pt)11pt12pt
tiny566
scriptsize788
footnotesize8910
small91011
normalsize101112
large121214
Large141417
LARGE171720
huge202025
Huge252525

○ スタイルファイルの位置

筆者の環境 (PlamoLinux 4.X) だと TeX 関係のスタイルファイルは /usr/share/texmf/ptex/platex/base あたりにいろいろありました.

おわりに

私は新しいこと覚えるのも面倒くさいし, 古い TeX で特に不自由してないしって ことで, 今流行りのεは使わず 2.09 コンパチモードで動かしています. という訳で, これらの情報は少し古いかもしれません. また, おそらくこのままでは使えるパターンは少なく, 長さ等を少し微調整する必要があるでしょう.


[追記] 続編もあります.
2006.2