TeX/LaTeX入門

出典: フリー教科書『ウィキブックス(Wikibooks)』
< TeX
移動: 案内検索
メインページ > TeX/LaTeX入門

はじめに[編集]

TeXとはドナルド・クヌースが開発した電子組版ソフトウェアである。Microsoft Windows、OS X、UNIXなど様々なプラットフォームで利用可能であり、商業印刷並みの品質で印刷を行うことができる。LaTeXレスリー・ランポートがTeXの上にマクロパッケージを組み込んで構築した文書処理システム(テキストベースの組版処理システム)である。ごく基本的な機能を有しているTeXと組み合わせて用いることで、より手軽に組版を行うことができる。

長所と短所[編集]

長所[編集]

  • 組版の元となるデータ(ソースファイル)はテキストファイルであり、特定の環境やアプリケーションに依存しない
  • 印刷物に勝るとも劣らない、高精度な出力
  • 章や節などの論理構造で記述することができる
  • ページ番号や章番号などを自動的に振り、目次や索引なども作成可能
  • 数式の優れた印刷

短所[編集]

  • ソースファイルは出力形式で記述できないため、表などを作る際には多少の慣れが必要
  • コンパイルではコマンドライン操作が必要となるため、GUIに慣れたユーザには取っ付きづらい。

TeX/LaTeX環境の導入[編集]

UNIX[編集]

w:TeX Live[1]などのTeXディストリビューション、またはこれを元にした公式パッケージ(FreeBSDであればports、Fedora であればyum、Debian や Ubuntu であれば .deb など)を導入することで容易に利用可能となる。

Windows[編集]

TeX LiveにWindows用のインストーラ(install-tl-windows.exeまたはinstall-tl.zip)が作成されており、これらを用いることで比較的容易に環境を構築することができる。

OS X[編集]

MacTeXはTeXのほか、TeXShopやBibDeskなど、関連ツールがインストールされる。MacTeXは、Homebrewによって導入することもできる。

LaTeXを始める[編集]

この章では最初にlatexコマンドを用いた英語のみの文書作成、続いてuplatexコマンドを用いた日本語を含む文書作成の順に解説します。入力するコマンドがcommandである場合、以下の様に示します。

$ command
output, output
output, output

$はシェルの出力(プロンプト)であり、ユーザが入力する必要はありません。コマンドを実行(commandを入力しEnterキー等を入力)すると、上の例では“output, output”が二行出力されていることを示します。コマンド入力に関してはUNIX/Linux入門MS-DOS/PC DOS入門を参照して下さい。

Hello, TeX 文書を作ろう[編集]

準備[編集]

日本語を扱った文書を作成する前に、まずは動作確認を含めて英語の文書を作成しましょう。テキストエディタを用いてtest1.texというファイルを作成します。ファイルの内容は以下のようにします。

% File name: test1.tex
\documentclass{article}
\begin{document}
Hello, \TeX \\
Hello, \LaTeX \\
\end{document}

大文字と小文字は区別されます。大文字は小文字にしないで入力してください。

コンパイル[編集]

これを保存したの上で、以下のコマンドでLaTeXを実行します。引数には作成したLaTeXファイルの拡張子(.texサフィックス)を除いた名前を指定します。

$ latex test1

Output written on test1.dvi (1 page, 340 bytes).
Transcript written on test1.log.

問題なくコンパイルされると最後の二行が上のようになり(環境によっては出力されるサイズが異なるかもしれません、以下同様です)、text1.dviというDVIファイルが作成されます。作成されたDVIファイルは、dvipdfmxでPDFファイルに変換することが出来ます。このドキュメントには、TeX・LaTeXともにロゴに変換された上で、1行目に"Hello, TeX"、2行目に"Hello, LaTeX"と表示されます。

解説[編集]

test1.texファイルと照らし合わせて解説をします。

  •  % File name: test.tex
    %以降は全てコメントとみなされ、出力されません。今回はファイル名を明確にするために書いてみました。
  • \documentclass{article}
    全てのLaTeXドキュメントは\documentclass{...}コマンドより始まります。この波括弧内にクラスファイルと呼ばれる、文書のレイアウトなどを定義しているファイルを指定します。今回の場合、クラスファイルはarticleです。これは短いドキュメントの書式で、論文の記事に類似しています。
  • \begin{document}
    \begin{...}\end{...}と対応して使い、環境と呼ばれる区切りをあらわします。今回の場合、環境はdocumentです。これは文書の本文を示す重要な環境で、この中にあるものが出力されます。\begin{document}より前の行をプリアンブルと呼びます。
  • Hello, \TeX \\
    最初の段落で、\に続く\TeXコマンドと呼ばれ、様々な表現を可能にします。このコマンドはTeXのロゴを表示します。\\は強制改行をするコマンドです。
  • Hello, \LaTeX \\
    前の段落で強制改行されているので、行頭は字下げされずに出力されます。\LaTeXはLaTeXロゴを出力するコマンドです。行末に強制改行のコマンドがあります。
  • \end{document}
    本文の終わりを示します。これ以降は出力されません。

日本語の文書を作ってみよう[編集]

準備[編集]

続いて日本語を扱った文書を作成します。日本語を扱うためにはupLaTeXが必要となり、ソースファイルを保存するときは文字コードに気をつけなければなりません。まずはソースファイルを保存するときに必要とされる文字コードを調べて見ましょう。以下のコマンドを実行してみてください。

$ uplatex --version
e-upTeX 3.14159265-p3.5-u1.11-130605-2.6 (utf8.uptex) (TeX Live 2014)

出力の最初の行に(utf8.uptex)と表示されると思います。これは利用した組版ソフト(今回の場合はuplatex)に設定されたソースファイルに使用する文字コードと内部文字コードを示しています。上記の例ではソースファイルに使用する文字コードはutf8、内部文字コードはuptexを示しています。


次に以下の内容を、組版ソフトに設定された文字コードと同じになるように、utf8.uptexであればUTF-8で、test2.texとして保存してください。ソースファイルの文字コードが組版ソフトの設定と異なると、出力結果が文字化けを起こすことがあります。

% File name: test2.tex
\documentclass{ujarticle}
\begin{document}
こんにちは、世界。
こんにちは、\TeX。

こんにちは、\LaTeX。
\end{document}

今回は日本語を扱っているのでクラスファイルにはujarticleを指定してください。

コンパイル[編集]

先ほどと同様にコンパイルしてみましょう。今回は日本語の含まれるソースをコンパイルするので、コマンドにはuplatexを使用します。

$ uplatex test2

Output written on test2.dvi (1 page, 444 bytes).
Transcript written on test2.log.

うまくコンパイル出来れば、最後の二行が上のように出力されます。こちらも同様にdvipdfmxでPDFファイルに変換することが出来ます。

解説[編集]

今回は日本語を含んでいるソースファイルをコンパイルしました。日本語を含む文書作成の際、クラスファイルにはujarticleujreportなどを指定します。

TeXでは一行以上空けない改行は全て無視されます。ですから、DVIファイルの“こんにちは、世界。”と“こんにちは、TeX。”は同じ行に出力されています。テキストエディタで編集している際、一行が長くなると場合によっては横スクロールが必要となり、見やすさが損なわれるので適度に改行することがあります。

では段落を作りたいときはどうすれば良いのでしょうか。一つは英語だけの文書を作成した際に利用した、\\コマンドです。しかし先ほど説明したとおり、強制改行の命令なので行頭の字下げは行われません。そこで今回のように、一行空けた改行を行います。こうすることで新たな段落を作ることができるのです。

文書構造[編集]

この章ではレポートなどの文書を作成する際に必要となる、表紙や章立ての作成を行います。論文の作成を例に話を進めますが、レポートでも同様に作業を行なうことができます。

クラスファイルオプション[編集]

TeX文書の最初に使用する\documentclass{}コマンドは、大括弧([と])を用いてオプションを渡すことが出来ます。オプションを指定することで、細かい指定をすることが出来ます。

準備[編集]

以下の内容をclassoption.texなどとし、保存してください。

% File name: classoption.tex
\documentclass[12pt]{ujarticle}
\begin{document}
こんにちは、世界!
\end{document}

続いて、以下のコマンドでコンパイルします。

$ uplatex classoption

解説[編集]

\documentclassコマンドの中括弧の前に、大括弧でオプションを指定することが出来ます。省略された場合はデフォルトのオプションが実行されることになります。

以下にujarticle.clsで指定できる殆どのオプションを掲載します。カンマで区切っているものは、そのいずれかしか選択できないものです(a4paperとa4jの項目も同時指定不可)。

a4paper, a5paper, b4paper, b5paper 
それぞれの用紙に設定します。
a4j, a5j, b4j, b5j, a4p, a5p, b4p, b5p 
上のオプションより本文領域を確保して用紙を設定します。
10pt, 11pt, 12pt 
基準となるフォントサイズを指定します。
landscape 
用紙を横置き(横の長さが長い)に設定します。[1]
tombow, tombo 
用紙サイズに合わせたトンボを出力します。tomboオプションは作成日時を出力しません。
tate 
縦書きで組版します。[2]
oneside, twoside 
片面印刷・両面印刷に適した組版を行うように設定します。
onecolumn, twocolumn 
本文を二段組にするかのオプションです。
titlepage, notitlepage 
\maketitleコマンドの出力に1ページ確保するかの設定です。
openright, openany 
chapterを右ページから行うか、或いは任意であるかのオプションです。
leqno, fleqn 
leqnoオプションは数式番号を左側へ、fleqnオプションは数式番号を右側へ出力するように設定します。
openbib 
参考文献リストを各項目ごとに改行する、オープンスタイル書式で出力します。
draft, final 
draftオプションは、オーバーフルボックスが発生した箇所へ5ptの罫線を引きます。

プリアンブル[編集]

プリアンブルとは、パッケージや独自のマクロを定義する際に用いる場所です。

パッケージとは、別のTeX文書をプリアンブルへ読み込むことで、初期状態では用意されていないような便利な機能(正確にはマクロと呼ばれます)を追加することが出来ます。

マクロとは、今までに紹介した\TeXコマンドなど、一度呼び出すと一連の処理を行うものです。

準備[編集]

まずは以下の内容をpreamble.texなどとし、保存してください。

% File name: preamble.tex
\documentclass{ujarticle}

% urlパッケージを使う
\usepackage{url}

% Wikiプロジェクトの名前と、日本語版プロジェクトへのURLを作る
\newcommand{\wikiproj}[1]{%
   Wiki#1 (http://ja.wiki#1.org/)}

\begin{document}
日本語版ウィキブックスは\url{http://ja.wikibooks.org/}にあります。

                  % 出力結果↓
\wikiproj{pedia}, % Wikipedia (http://ja.wikipedia.org/),
\wikiproj{books}. % Wikibooks (http://ja.wikibooks.org/).
\end{document}

今まで通りにコンパイルしますが、urlパッケージが無い場合は以下のようなエラーが表示されます。エラーが表示されたら、xを入力してEnterキーを押して終了します。

$ uplatex preamble

! LaTeX Error: File `url.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

Enter file name:

解説[編集]

\usepackage{}コマンドは、中括弧に指定されたファイル名に、拡張子が.styのファイルを読み込むコマンドです。\newcommandコマンドは新たにマクロを定義するコマンドです。

ここではプリアンブルへ\usepackage{}コマンドの書き方を覚えるだけで十分です。\newcommandコマンドに関してはここで理解する必要はありませんので、詳しくは#応用で説明します。

表紙[編集]

論文では最初のページに、表題や著作者などを記すことが多いと思います。LaTeXでは比較的簡単に作成することが出来ます。

準備[編集]

下の内容をmaketitle.texなどとし、保存してください。

% File name: maketitle.tex
\documentclass{ujarticle}
\begin{document}
\title{文書のタイトル}
\author{名無しの権兵衛}
\date{2001年1月15日}
\maketitle
本文。
\end{document}

続いて、以下のコマンドでコンパイルします。

$ uplatex maketitle

解説[編集]

では、この例に出てくる主要なコマンドの解説をします。コマンド名が太字のものは\maketitleを使用する際に必須のコマンドで、省略することはできません。

  • \title{}
    表題を定義するコマンドです。\LARGEサイズ(サイズに関しては後述します)で印刷されます。
  • \author{}
    著者を定義するコマンドです。\Largeサイズで印刷されます。
  • \date{}
    日付を定義するコマンドです。\largeサイズで印刷されます。このコマンドを指定しないと、ujarticleクラスでは“平成13年1月15日”の形で印刷され、日付を出力したくない場合は引数を空にします。例では英語版Wikipediaのプロジェクトが始まった日を西暦で表示します。
  • \maketitle
    このコマンドを記述することで、上のコマンドで定義した表紙の要素を印刷します。つまりこのコマンドよりも前に、上のコマンドを記述する必要があります。

\titleと\author、そして\dateコマンドは引数を取るコマンドです。引数は例の通り、{}の中括弧で囲みます。例では本文の開始と同じページに表紙を印刷しましたが、1ページ使って表紙を印刷したい場合はクラスファイルオプションにtitlepageを指定します。つまり、\documentclass[titlepage]{ujarticle}と書けばそれだけでいいのです。

概要[編集]

準備[編集]

以下の内容を、abstract.texと保存しましょう。

% File name: abstract.tex
\documentclass{ujarticle}
\begin{document}
\title{概要を表示する}
\author{ウィキブックス}
\date{\today}
\maketitle

\begin{abstract}
ここに概要を書きます。
\end{abstract}

本文。
\end{document}

解説[編集]

概要はabstract環境を用います。環境は、\begin{}コマンドと\end{}コマンドで囲うものですね。abstract環境では“概要”という文字を太字で印刷し、概要の文章の左右に空白を空けて印刷します。jsarticleクラスでは\smallサイズで印刷します。

“概要”という文字を“要約”などに変更したい場合は、#応用で詳しく説明します。

目次[編集]

準備[編集]

以下の内容を、toc.texと保存しましょう。

% File name: toc.tex
\documentclass{ujarticle}
\begin{document}

\tableofcontents

% 以下の \section{}, \subsection{}コマンドについては後述します。
\section{はじめに}
\subsection{時代背景}
\subsection{著者について}
\section{人生について}
\subsection{人生とは}
\end{document}

\tableofcontentsコマンドを使用するときは、3回程度はコンパイルします。

$ uplatex toc
$ uplatex toc

解説[編集]

\tableofcontentsコマンドでは、コンパイル時に生成される.tocファイルを基に目次を生成します。この.tocファイルは後述の\sectionコマンドなどの情報を書き出してあるファイルで、初めてのコンパイル作業では.tocファイルがないため、目次は生成されません。

また2回目のコンパイルで目次が挿入されると目次以降の本文がずれてしまい、2回だけでは目次と本文のページ番号が合わない場合がありますので、コンパイルは少なくとも3回程度行なってください。

章立て[編集]

論文では複数の“章”や“節”という固まりを作ることになると思います。ここでは、章立ての仕方について解説します。

準備[編集]

以下の内容を、section.texなどで保存しましょう。

% File name: section.tex
\documentclass{ujarticle}
\begin{document}

\section{はじめに}
第一章です。

\subsection{時代背景}
第一章、第一節です。

\subsection{著者について}
第一章、第二節です。

\section{人生について}
\subsection{人生とは}
第二章、第一節です。

\end{document}

今までと同様にコンパイルしてみましょう。

$ uplatex section

解説[編集]

上の例では\sectionコマンドと\subsectionコマンドのみを使いましたが、同様のコマンドは以下の表の通りです。

章立てコマンドの一覧
コマンド 章節 レベル
\part{} -1
\chapter{} 0
\section{} 1
\subsection{} 小節 2
\subsubsection{} 小々節 3
\paragraph{} 段落 4
\subparagraph{} 小段落 5

※\chapter{}コマンドはarticle, ujarticleクラスでは使用できません。

章立てコマンドは自動的に章番号をつけ、上位レベルのコマンドを記述すると番号は再び1から始まります。これらのコマンドは、\sectionに続けて\subsubsectionを記述することができますが、文書の論理構造的に正しくないので、\sectionの次は\subsection以上のものを記述するようにしましょう。

章番号を付けずに、目次へ出力しない章を作りたいときはどうすればよいのでしょうか。これは簡単で、それぞれのコマンド名のあとにアスタリスク(半角の*)を付けるだけです。

例: \section*{前に番号がつかず、目次にも現れない章}

番号を出力するとともに“章”という文字を出力したりする場合は、#応用を参照してください。

参考文献リスト[編集]

(stab)

書式[編集]

この章では文字列の見た目を変更するコマンドを紹介します。

サイズ[編集]

[編集]

% File name: fontsize.tex
\documentclass{ujarticle}
\begin{document}

ここは普通の大きさです。
{\small ここは小さい文字になります。}
普通の大きさです。
{\large ここは大きい文字になります。}
普通の大きさです。
{\small 小さい文字の中に、{\large 大きい文字を入れて、}再び小さい文字になります。}

\end{document}

解説[編集]

フォントサイズは、サイズを変更したい文字列を中括弧で囲い、最初に変更するコマンドを記述します。中括弧で囲んでいる中に、別の中括弧を含めた場合は最も内側が優先されます。

上記以外のサイズ変更コマンドは以下の表の通りです(ujarticleクラス)。各コマンドにおける実際のフォントサイズは、\documentclassコマンドのオプション等で指定された基準のフォントサイズ(\normalsize)によって異なります。

サイズ変更コマンド一覧
コマンド ポイント
\tiny 5 6 6
\scriptsize 7 8 8
\footnotesize 8 9 10
\small 9 10 11
\normalsize 10 11 12
\large 12 12 14
\Large 14 14 17
\LARGE 17 17 20
\huge 20 20 25
\Huge 25 25 25

書体[編集]

LaTeXで書体を扱う際、以下の種類に分けることが出来ます。

  • ファミリー(Family)
    デザインで分類したもの。いわゆるフォントにほぼ同じです。
  • シリーズ(Series)
    文字の太さを分類したもの。TeX以外ではウェイトと呼ばれています。
  • シェイプ(Shape)
    見た目の形で分類したもの。斜体やスモールキャップ体などです。

更に記述の方法は、以下の2種類あります。

  • 宣言型(Declaration)
  • コマンド型

宣言型の記述では、中括弧を用いて範囲を指定しない限り最後まで変更されます。

ファミリー[編集]

% File name: fontfamily.tex
\documentclass{ujarticle}
\begin{document}

Normal.
% 宣言型
{\gtfamily Gothic.}
{\rm Roman.}
% コマンド型
\texttt{Typewriter.}

\end{document}
宣言型 コマンド型
明朝体 \mcfamily \textmc
ゴシック体 \gtfamily \textgt
ローマン体 \rmfamily \textrm
サンセリフ体 \sffamily \textsf
タイプライタ体 \ttfamily \texttt

シリーズ[編集]

% File name: fontseries.tex
\documentclass{ujarticle}
\begin{document}

Normal.
{\bfseries Bold.}

\end{document}
宣言型 コマンド型
ミディアム \mdseries \textmd
ボールド \bfseries \textbf

シェイプ[編集]

% File name: fontshape.tex
\documentclass{ujarticle}
\begin{document}

Normal.
{\itshape Italic.}
{\slshape Slanted.}

\end{document}
宣言型 コマンド型
通常体(Upright) \upshape \textup
イタリック体(Italic) \itshape \textit
スモールキャップ体(Small caps) \scshape \textsc
斜体(Slanted) \slshape \textsl

イタリック体と斜体の違いですが、イタリック体は通常体を傾けた形でデザインされたものを使用するのに対し、斜体は通常体を無理矢理傾けて使用します。

その他[編集]

宣言型では\normalfontコマンド、コマンド型では\textnormal{}コマンドは通常の書体設定(大抵は宣言型記述で、\rmfamily\mdseries\upshape)に戻します。また宣言型記述方法で、タイプライタ体を\ttコマンドで記述できるシステムがありますが、互換性維持のためのコマンドなので上で示したコマンドを使いましょう。

ファミリーとシリーズ、シェイプは以下のように、それぞれを組み合わせることが可能です。同じ種類のコマンドを記述すると最後のものが優先されます。

% File name: fontother.tex
\documentclass{ujarticle}
\begin{document}

Normal.
{\ttfamily\bfseries\itshape Typewriter, Bold and Italic.}
{\ttfamily\scshape\rmfamily Roman and Small caps.}

\end{document}

環境[編集]

この章では文書作成の上で有用な環境である、箇条書きを幾つか紹介します。

箇条書き[編集]

箇条書きには幾つか種類があります。

  • HTMLでは <ul> のような記号に続くリスト(itemize環境)。
  • HTMLでは <ol> のような数字に続くリスト(enumerate環境)。
  • HTMLでは <dl> のような任意の言葉に続くリスト(description環境)。

箇条書きの構造は、\begin{}コマンドで見た目を決定する環境を開始し、\itemコマンドで要素を記述します。

itemize環境[編集]

% File name: itemize.tex
\documentclass{ujarticle}
\begin{document}

以下はWikibooksの姉妹プロジェクトのリストです。
\begin{itemize}
  \item Wikipedia
  \item Wiktionary
  \item Wikiquote
\end{itemize}
\end{document}

このソースファイルをコンパイルすると、中黒で順序のない箇条書きを作ることが出来ます。またソースファイルでは、LaTeXの構造を分かりやすくするために\itemコマンドの前に半角スペースを2個入れていますが、出力には影響ありません。

enumerate環境[編集]

% File name: enumerate.tex
\documentclass{ujarticle}
\begin{document}

Wikiを使うメリットは以下の3点です。
\begin{enumerate}
  \item インターネット上のどこからでも更新できる。
  \item ブラウザだけで作業が出来る。
  \item Wikiの文法は覚えやすく、Wiki内のリンクは簡単。
\end{enumerate}
\end{document}

このソースファイルをコンパイルすると、算用数字で順序のある箇条書きを作ることが出来ます。

description環境[編集]

% File name: description.tex
\documentclass{ujarticle}
\begin{document}

以下の期日で新年会を行います。
\begin{description}
  \item[日時] 20xx年1月1日 xx時より
  \item[場所] 日本語版ウィキブックス、談話室にて
  \item[会費] ψ0
\end{description}
\end{document}

このソースファイルをコンパイルすると、\itemコマンドの直後に[と]で囲んだ文字列が太字で印刷され、定義リストを作ることが出来ます。

引用[編集]

他の文献などから引用する場合に用いるのがquote環境quotation環境です。

% File name: quote.tex
\documentclass{ujarticle}
\begin{document}

先ずはquote環境を使います。
\begin{quote}
  吾輩は猫である。名前はまだ無い。

  どこで生れたかとんと見当がつかぬ。
  何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
\end{quote}

続いてquotation環境を使います。
\begin{quotation}
  吾輩は猫である。名前はまだ無い。

  どこで生れたかとんと見当がつかぬ。
  何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
\end{quotation}

夏目漱石『吾輩は猫である』より。
\end{document}

quote環境[編集]

引用文中の段落の字下げを行わない引用環境です。短い引用に用いられます。

quotation環境[編集]

引用文中の段落の字下げを行う引用環境です。比較的長い文章を引用する際に用いられます。

整形済みテキスト[編集]

verbatim環境[編集]

begin〜end間のテキストをそのまま出力する環境です。プログラムのソースファイルなどをそのまま載せたいとき、LaTeXの制御文字を連続して使用する場合などに用います。ただし、行頭のタブは無視され、行の途中のタブは半角スペースに置き換えられるので注意してください。

% File name: verbatim.tex
\documentclass{ujarticle}
\begin{document}
\begin{verbatim}
!"#$%&'()+*<>?_|~= 
\end{verbatim}
\end{document}

verbatim*環境[編集]

verbatim環境とほとんど同じですが、半角スペースがあるところにアキの印が出力されます。

\verbと\verb*[編集]

verbatim環境は使用すると、整形済みテキストの前に必ず改行されます。これは、文中にちょっとしたものを書きたいときには不便です。\verbを使うことで、文中に整形済みテキストを挿入することができます。使い方は、\verbの後に任意の記号を置き、その後に整形済みテキストを置き、\verbの後に置いた記号をもう一度置きます。\verbの後に置く記号は、整形済みテキストに含まれていないものなら、何でもかまいません。

% File name: verbatim.tex
\documentclass{ujarticle}
\begin{document}
今日はとても楽しかった\verb+(^_^)+ですね。
\end{document}

数式[編集]

TeXは数式の組版に強いと言われます。なぜなら開発者のクヌースが自身の著書であるw:en:The Art of Computer Programmingを書くときに、当時コンピュータで作った組版状態が綺麗ではなく、自ら満足するソフトを作ったからです。この作ったものこそ、TeXなのです。

数式を使うには[編集]

数式を扱うには大きく分けて二つあります。

  • 数式を文中へ埋め込む場合で、$で挟む方法(textstyle)
  • 別の段落として数式を印刷する場合で、\[\]で囲んだり、数式環境に入れる方法(displaystyle)

後者はページの中心に数式が印刷されます。また、どちらも専用のフォントで表示されます。

\documentclass{ujarticle}

\begin{document}

積分は一般に以下の形で記される。

\[
\int^{b}_{a} f(x) dx
\]

\end{document}

数式モードの基礎[編集]

  • 式に含まれる空白は自動的に調節されます
  • textstyleでは行内に収めるため、圧縮されたような表示になります
    • textstyle表示をdisplaystyle表示にしたいときは、\displaystyleコマンドを用います

数式環境[編集]

文中に数式を挿入する場合は次のいずれかのコマンドで囲みます。

  • $$
  • \(\)

例:

\(
数式
\)

文中に入れるのではなく、数式として独立させたい場合は、eqnarray環境を用います。

\begin{eqnarray}
数式 \\
数式 \\
数式
\end{eqnarray}

eqnarray環境では1行ごとに番号が付加されます。必要ない場合はeqnarray*環境を用います。

四則演算[編集]

足し算(+)と引き算(-)は何も考えずに表示できます。

\[
4 + 5 - 2 = 7
\]

掛け算(×)と割り算(÷)は、それぞれ\timesコマンド\divコマンドを用います。

\[
4 \times 5 \div 2 = 10
\]

分数[編集]

\fracコマンドを用います。最初の引数で分子を指定し、次の引数で分母を指定します。

\begin{eqnarray*}
\frac{1}{2} + \frac{1}{3} &=& \frac{3}{6} + \frac{2}{6} \\
                          &=& \frac{3 + 2}{6} \\
                          &=& \frac{5}{6}
\end{eqnarray*}

※注:この例では見やすくするため半角スペースを用いて = の位置を揃えていますが、実際の処理では & を用いた位置で揃えられます。

平方根[編集]

\sqrtコマンドを用います。

\[
\sqrt{4} = 2
\]

3乗根や5乗根を表現したいときは、コマンド名の直後に角括弧([と])で数字を囲みます。

\[
\sqrt[3]{8} = 2
\]

べき乗[編集]

^を用います。

\begin{eqnarray*}
2^{3} &=& 2 \times 2 \times 2 \\
      &=& 8
\end{eqnarray*}

^の後が一文字だけであれば{}で囲む必要はありませんが、複数文字で表現したいときに忘れることがあるので、出来る限り{}で囲むようにしましょう。

数列[編集]

数列の添え字は_を用います。これも{}を付けない場合、続く1文字だけが添字だと解釈されます。

\begin{eqnarray*}
a_{n + 1} = a_{n} + 4
\end{eqnarray*}

和(シグマ)、極限、積分[編集]

和は\sumコマンド、極限は\limコマンド、積分は\intコマンドを用います。

\begin{eqnarray*}
\sum_{k = 0}^{10} k \\
\lim_{x \to \infty} f(x) \\
\int^{b}_{a} f(x) dx
\end{eqnarray*}

それぞれ記号の上下に範囲を印刷しますが、べき乗と数列で扱った^_を用いて表現します。

関数名[編集]

数学にはsinやcosなど、名前のついた関数がありますが、これらをそのままsin xのように書いてしまうと、s×i×n×xのように解釈されてしまうため文字が斜体となりきれいに表示されません。有名な関数は\sinのように、コマンドになっています。

 \sin^2 x + \cos^2 x = 1

また、modについては、二項演算子として使う\bmodと、カッコつきの\pmodがあります。

 \begin{eqnarray*}
 a \bmod b = 2 \\
 a \equiv b \pmod{3}
 \end{eqnarray*}

ただし一部の関数はコマンドになっておらず、そう言った場合は\mathrmを用いて斜体を解除する必要があります。Sinc 関数を例にすると\mathrm{sinc}(n \pi)とすると、\mathrm{sinc}(n \pi)のように表示されます。ちなみに、\mathrmは、数式環境用の\textrmです。

これを応用して、数式環境で単位を表示させたいときにも$f_{s}=4\mathrm{kHz}$(textstyleの書き方)のように書くことができます。

特殊記号[編集]

数式にはいろんな記号が登場します。これらは、専用の命令で呼び出せます。日本語のフォントにあるからと言って、それを直接数式モードで使わないようにしましょう。環境によってはエラーになりますし、スペースの配分がうまくいかなくなる原因にもなります。

記法 結果
\alpha \beta \gamma \delta αβγδ
\Delta \Lambda \Psi \Omega ΔΛΨΩ
= \neq < > \equiv =≠<>≡
\cap \cup \in \ni \forall \exists ∪∩∈∋∀∃
\nabla \partial \infty ∇∂∞

応用[編集]

他のファイルを読み込む[編集]

例えば大きな文書を作成しているときや、共通する部分を持つ文書を作成するとき、一つのLaTeX文書を複数に分割することで編集作業や再利用が容易になります。

% --- article.tex ---
\documentclass{ujarticle}

\begin{document}
\include{title}
\include{body}
\end{document}
% --- title.tex ---
\title{文書のタイトル}
\author{名無しの権兵衛}
\maketitle
% --- body.tex ---
\section{はじめに}
ファイルを分割してみました!

include{}コマンドを利用することで、指定したファイルをその位置に読み込みます。従って、読み込まれるファイルでは\documentclassコマンドなどを記述する必要はありません。

コンパイルするときは大元の文書ファイルを指定します。他のファイルは自動的に読み込まれます。

$ uplatex article

ラベルの変更[編集]

準備[編集]

この本は入門なので、簡単に変更できるような方法を紹介します。そのためにjsarticleドキュメントクラスを導入しましょう。

jsarticleドキュメントクラスは奥村晴彦が作成した新ドキュメントクラスで、フォントサイズがujarticleに比べて多く用意されていたり、\sectionコマンドのラベルを容易に変更できるようになっています。

jsarticleドキュメントクラスの導入はjsarticleのサポートサイトに載っているので、そちらを参照してください。

解説[編集]

例えば\sectionの出力を“第1章 はじめに”のようにしたい場合は、#プリアンブルへ以下の記述をします。

\documentclass[uplatex]{jsarticle}

% 以下2行が章のラベルを書き換える
\renewcommand{\presectionname}{第}
\renewcommand{\postsectionname}{章}

\begin{document}
\section{はじめに}

\end{document}

ujarticleでも以下で紹介する殆どを変更できますが、jsarticleを用いれば\sectionコマンドの出力も変更できます。

変更可能ラベル一覧
変数 コマンド 初期値
\prepartname \part
\postpartname
\prechaptername \chapter(book系のみ)
\postchaptername
\presectionname \section
\postsectionname
\contentsname \tableofcontents 目次
\listfigurename \listoffigures 図目次
\listtablename \listoftables 表目次
\refname \thebibliography(book系以外) 参考文献
\bibname \thebibliography(book系) 参考文献
\indexname \theindex環境 索引
\figurename \label
\tablename \label
\appendixname \appendix 付録
\abstractname abstract環境(book系以外) 概要

マクロ[編集]

\newcommandコマンドマクロを定義するコマンドで、以下のような形式を取ります。

\newcommand{\定義したいコマンド名}{コマンドなど}

マクロは定義した名前を呼ぶことで、一連の手続きを手軽に扱うことができます。これにより、煩雑なコマンドも独自のマクロで容易に扱えるようになります。

簡単なマクロ[編集]

#プリアンブルに例があります。

脚注[編集]

  1. ^ ターミナルからdvipdfmxコマンドでPDFを出力した場合、本文記事中で\documentclassコマンドにlandscapeオプションを指定しただけでは横長の用紙設定でPDFが出力されないことがあります。これには2種類の対処方法があります。
    • ターミナルからdvipdfmxコマンドを入力する際、-lオプションを指定
    • プリアンブルに\AtBeginDvi{\special{landscape}}の一行を追加
    なお、本文記事中にlandscapeオプションを指定しないと、用紙は横長だが本文レイアウトが縦長のまま出力されてしまうことに注意してください
  2. ^ documentclassにujarticleを指定した場合、不具合が出る場合があります。
    例)タイトルページを組み込んでも、\authorに縦書き設定が反映されない。
    その場合はdocumentclassにutarticleを指定してください。
このページ「TeX/LaTeX入門」は、書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にノートへどうぞ。