Notes on TeX

 

TeXはコンパイル型組版アプリケーション。産みの親はDonald E. Knuth氏。拡張子はtex。\のあとにspellを書くことによりTeX特有の組版コマンドが使えるようになる。TeX組版の売りは綺麗な数式を簡単に出力することができる点である。

魔法の書かれ方は大きく分けて2通りあり、\begin{魔法} ... \end{魔法}もしくは\魔法{...}である。...の部分はその魔法の環境もしくは部分魔法陣と呼び、環境内でさらに魔法を唱えることで魔法に追加効果を与えることが出来る。

文書を作る

基本的なTex文書の構造は、出力されない文書情報を指定する部分(プリアンブル)と出力される部分(本文)からなる。

< tex文書の基本構造 >

プリアンブル %出力されない文書情報を指定する
\begin{document}
本文 %出力される部分
\end{document}

プリアンブル preamble

出力されない文書情報や自作の呪文(=マクロ)をここで指定する。

文書型を指定する: \documentclass[オプション]{文書型}

オプション
オプション 解説 例、補足
twocolumn 論文を二列表示にする。
12pt 文字を12ptで打ち出す。
a4paper 用紙サイズをA4サイズにする。
oneside/twoside レイアウトを頁の奇偶で同じにする/変える。

パッケージを導入する: \usepackage{パッケージ}

ファイル内で新しく魔法を導入するにはパッケージを導入する。これによりパッケージ内の新しい魔法が使えるようになる。パッケージを書く際はファイル名から拡張子は取り除く

内部パッケージ

texをインストールすると、内部パッケージがもれなくついてくる。

\usepackage{内部パッケージ}
内部パッケージ 解説 例、補足
bm tex文書内の文字を太文字にする。 \bm{文字}のように使う。
ulem テキストに対し横棒で取り消し線を引くことが出来る。 \sout{テキスト}のように使う。

外部パッケージ

誰かが作ってくれたファイルを(freeであればなおさら有難い気持ちをもって)外部からダウンロードして導入する。外部パッケージ内魔法を有効化するには、コンパイルするファイルと同じフォルダ内に外部パッケージファイルを置く必要がある。CTAN(➡ [外部リンク])に様々なパッケージが置かれている。

\usepackage{ファイル名.拡張子}
ファイル名 解説 例、補足 ファイルリンク
url.sty URLがtex文書内で直接書き下せるようになりハイパーリンクが出来る。 \url{URL}のように使う。 [mirrors.ibiblio.org]

本文 document

tex文書のうち\begin{document}\end{document}で囲まれる部分を本文という。

\begin{魔法}型
魔法 効果 例、補足
itemize/enumerate/description 箇条書きする。
table 表の環境を作る。 \captionが使える。
figure 図の環境を作る。 \captionが使える。
verbatim 打ち込んだ通り記述する。 中括弧"{"などがそのまま記述できる。

textを表示させない(コメントアウト): ① % ② \if0 \fi

様式

箇条書きする: ①itemize ②enumerate ③description

①行頭を黒丸で箇条書きする。黒丸から変えたい場合には、変えたい部分の冒頭で、\renewcommand{\labelitem?}{X}により指定する。?には適用する段落をi,ii,などで指定し、黒丸からXに変わる。特に、\item[]として[]の中を空欄にすると何も出力せずに箇条書きする。
②番号を自動的に振る。番号のタイプを変えたい場合には、変えたい部分の冒頭で、\renewcommand{\labelenum?}{\NumberType{enum?})}により指定する。?には適用する段落をi,ii,などで指定し、NumberTypeにはromanなど番号の書式を指定するパラメータが入る。特に、\item[]として[]の中を空欄にすると何も出力せずに箇条書きする。
③箇条書きの際、行頭のタイプを自分で一つずつ指定する。\item[]として[]の中にnumberingする記号を入れる。
これらは入れ子にすることもできる。雛形を以下に示す。

①itemize雛形

\begin{itemize}
 \item (項目・)
  \begin{itemize}
   \renewcommand{\labeleitemii}{[$\star$]}
    \item (項目*)
    \item (項目*)
  \end{itemize}
 \item (項目・)
\end{itemize}

②enumerate雛形

\begin{enumerate}
 \renewcommand{\labelenumi}{(\roman{enumi})}
 \item (項目i)
  \begin{enumerate}
   \renewcommand{\labelenumii}{[\Roman{enumii}]}
   \item (項目I)
   \item (項目II)
  \end{enumerate}
 \item (項目ii)
\end{enumerate}
enumerateの数の書式
NumberType 書体
\arabic アラビア数字(default) 1,2,...
\roman[\Roman] ローマ小文字[大文字] i,ii,...[I,II,...]
\alph[\Alph] アルファベット小文字[大文字] a,b,...[A,B,...]

③description雛形

\begin{description}
 \item[($\heartsuit$)] (項目(♡))
 \item[($\clubsuit$)] (項目(♣))
 ...
\end{description}

位置を調整する: \setlength

項目の位置を調整するにはそれぞれの環境内で\setlength{オプション}{数値}を冒頭に書く。数値にはpt,mmなどの単位をつける。

option
オプション 解説 例、補足
\leftskip [\parskip] 項目の文頭の位置[段落の間隔]を調整する。
\itemsep [\labelsep] 項目の間隔[itemと文頭の間]を調整する。
\itemindent 文頭のインデントを調整する。

表を作成する: table->tabular

table環境は文書内で表を置くためのスペースを確保する呪文で、tabular環境は実際に表を構築するための部分魔法陣を作る。

< 表雛形 >

\begin{table}[thb]
 \label{}
 \begin{center}
  \begin{tabular}{|c|cc|cc|}
  \hline
  &\multicolumn{2}{c|}{  }   &\multicolumn{2}{c|}{  }  \\ %2つの欄を一つにまとめる
  &  &  &  & \\
  \hline
  &  &  &  & \\
  &  &  &  & \\
  \hline
  \end{tabular}
 \caption{  }
 \end{center}
\end{table}

表を並べる。

\table,\tabular,\minipageを組み合わせる。複数の数式を並べる場合には、\Beqnarrayを用いる。

< 2分割表示雛形 >

\begin{table}[htb]
  \begin{center}
    \begin{tabular}{c}
      \begin{minipage}{0.5\hsize}
        \begin{center}
	左側。
        \end{center}
      \end{minipage}
      \begin{minipage}{0.5\hsize}
	\begin{center}
	右側。
	\end{center}
      \end{minipage}
    \end{tabular}
  \end{center}
\end{table}

図(jpg,epsファイル)を貼る: \includegraphics

図と文字を並べる

\minipageを使う。注意すべき点は、\minipage内では\begin{figure}環境が使えないことである。このため、図の番号は自分で付け加える。

< 雛形 >

\begin{minipage}[hb]{.5\hsize}
	左側
\end{minipage}
\begin{minipage}{.5\hsize}
	\includegraphics[keepaspectratio,scale=.5,angle=90,origin=c]{図.eps} \\
	図xx: 図の説明		% \captionを使うとエラーを起こす。
	\label{ラベル}
\end{minipage}

図を並べる

\usepackage{subfigure}を用いる。subfigureに対してはlabelは使うことができない。

< 2分割表示雛形 >

\begin{figure}
  \begin{center}
  \subfigure[title1]{
	\includegraphics[scale=.5]{絵1.eps}
  }
  \qquad\qquad
  \subfigure[title2]{
	\includegraphics[scale=.5]{絵2.eps}
  }
  \end{center}\vspace{-0.5cm}
  \caption{説明}\label{fig}
\end{figure}

ファイルを挿入する: \input

\input{texファイル(拡張子込み)}により分割したtexファイルを挿入できる。

(SY comment)
文章量が長くてコンパイルが遅い時は、完成した部分を別のファイルに分割してそのファイルをinputで本文に挿入するという形式にしておき、本文を編集するときにはinput部分をコメントアウトするとコンパイルが速くなる。

横に長い線をひく: \hrulefill

参考文献: ① \thebibliography ② \bibliographystyle{ }

参考文献目録のラベリングを[1]から1)に変える

以下のおまじないをプリアンブルに書く。

\makeatletter
\renewcommand\@biblabel[1]{#1)}
\makeatother

参考文献の引用番号\citeを[1]から上付きの1)に変える

以下のおまじないをプリアンブルに書く。

\makeatletter
\DeclareRobustCommand
\cite{\unskip \@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
\def\@cite#1#2{$^{\hbox{\scriptsize{#1\if[@tempswa , #2\fi})}}$}
\makeatother

bibtexを用いた場合で参考文献内のフォントを小さくする

単に{\small\bibliography{bibfile}}とフォントサイズ変更\smallで\bibliographyを囲めばよい。

数式関係

数式関係
魔法 解説 表示 例、補足
\mathop{A}_{B} Aの下にBを書く。 $\mathop{A}_{B}$ limitなどの真下に極限のとり方を表す数式を書きたい場合などに使える。
{A \atop B} Aの下にBを書く。 ${A \atop B}$ 長い条件を上下で分割して表示したいときなどに使える。
\mathring{A} 記号の上に小さな丸を付ける。 $\mathring{A}$

行列

成分表示行列

\bordermatrix{   & \cdots & i & \cdots & j &\cdots &  \cr
  &\ddots&  &  &  \cr
i &    & U_i &   &  \cr
 & & & \ddots &  \cr
j &  & & & U_j  \cr
 &  & & & & \ddots  \cr
}

マクロを作る

自分で新しい呪文(マクロ)を構成することができる。自作の呪文はそれを書いたその直後から有効になるが、通常はプリアンブルに書いておくとよい。➡ [外部リンク],[外部リンク2]

呪文を作る

\呪文型: ① \newcommand ② \def

\begin型呪文を作るには\newcommandもしくは\defの両方が使える。

< 基本書式 >

\newcommand\名前[引数の数]{処理}
\def\名前[引数の数]{処理}

\begin型: newenvironment

\begin型呪文を作るには\newenvironmentが使える。

< 基本書式 >

\newenvironment{名前}[引数の数]{環境はじめ}{環境終わり}

パッケージ化

環境整備 setup

特に日本語環境を快適にする設定をまとめる。

Tex for Linux

UbuntuではTexは標準装備されている。

Kile & Okular

便利な無料エディター。Kile, OkularはどちらもUbuntuOSで$sudo apt install kile[okular]で簡単にインストールでき、tex editorとその(dvi-)viewerとして早く快適。Okularは、そのviewerの中の部分をselectorで枠を作って囲むとその部分がすぐに保存できそのままスライドに貼り付けることができるので、トークスライドを作るのに非常に便利である。

Linux上のTexで日本語を使う

terminalでplatexと打つと指示が出されるのでそれに従う。

  1. $ sudo apt-get install texlive-lang-japaneseをコマンドラインに打ち込み日本語環境をインストールする。
  2. コンパイルしたいtexファイルが置かれているフォルダへ行き、$ platex *.tex ; dvipdfmx *.dviでコンパイル&pdfへの変換を行う。
  3. $ evince *.pdfでpdfファイルを見ることができる。

Build設定 ➡ [外部リンク]

Kile&Okularで日本語ファイルを効率よく処理するには、Buildを設定する。

  1. Settings > Configure Kile > Tools > Build にいく。
  2. Select a tool > New でplatexを登録する。
  3. platexを登録したら、右側choose a configuration > General > command でplatexを入力する。他の部分はtool > Latex を参考にする。
  4. QuickBuildに1.platex 2.DVItoPDFを登録する。texファイルはQuickBuild(defaultのショートカットはAlt+1)でコンパイルする。
  5. Okularではdviファイルではなくpdfファイルを開く。日本語フォントが入っていなければ日本語フォントをインストールする。利用可能フォントをチェックするにはfc-listからgrepで日本語フォント(TakaoGothicなど)を確認する。 cf. [外部リンク]

Tex for Windows

WindowsではTexは自分でインストールする必要がある。

Tex Live ➡ [外部リンク]

広く普及している総合TeX distribution。TeX Live 2010 以降は日本語対応のパッケージが取り入れられ日本語の組版に必要な要素がすべて取り込まれている。isoファイルをダウンロードしinstall-tl-windows.exeを実行するだけでインストールができるが、時間がかかる。

Tex Works ➡ [外部リンク]

Tex Liveに梱包されているTexEditor。

ptex2pdf の設定➡ [外部リンク]

ptex2pdfはplatexとdvipdfmxを連続して実行することができる。ptex2pdfはTeX LiveやW32TeXに含まれておりコマンドラインからでも使用できる。

  1. Edit > Preferences > Typesetting > Processing tools
  2. [+]ボタンを押し以下のように設定を行う。
    名前: 		pdfpLaTeX
    プログラム: 	ptex2pdf
    引数: 		-l 
    		-ot 
    		$synctexoption -guess-input-enc -kanji=utf8
    		$fullname
  3. 「実行後、PDFを表示する」にチェックをいれる。
  4. 一番したに追加されたpdfpLaTeXを↑を押してトップに移動しておく。

図を作る: WinTpic ➡ [外部リンク]

Tex用お絵かきソフトにWinTpicがある。これはお絵かきソフトで絵を描いたものをtexファイルに変換してくれる。

texファイルであるから、絵を文書に取り込むには\input{ファイル.tex}によって行う。図の拡大や縮小はgraphicx.styを使って(\usepackage{graphicx})、\scalebox{0.5}{\input{ファイル.tex}}のようにすればできる。

小技など(Tips)

arxivの論文のソースファイルを開く

アーカイブからソースファイルをダウンロードする。うまく開けない場合には、Ubuntuでアーカイブファイルを右クリックしてアーカイブマウンタで開く。

UbuntuでPRLなどのdouble columnの論文formatのclass file(=revtex4)をインストールする

terminalで$sudo apt-get install texlive-publishersと入力するだけで終了。texファイルの冒頭でdocumentclassを指定する際、\documentclass[prl,twocolumn,showpacs,groupedaddress]{revtex4}と書いておく。"groupedaddress"を付け加えておくとaffiliationとauthorの番号が付かない。

インストールがうまくいかない場合がある。その場合は次の方法がある。

  1. (revtex4-1.clsをダウンロード): APS(American Physics Journal)が提供するrevtex4-1.clsを含むzipファイルをダウンロードする。(例えば、リンク1)
  2. zipファイルを展開し、texフォルダとbibtexフォルダに入っているファイルを全てコンパイルしたいtex fileを含んだフォルダに入れる。そうするとこのクラスファイルを使ったコンパイルが可能になる。


主要参考文献・役立ちサイト ⇧ top ⇧

Donald E. Knuth texの産みの親のホームページ。
The Comprehensive TeX Archive Network(CTAN) 包括的なTex文書ネットワーク。
Tex Texについて日本語でまとめられている。