= LaTeX講習 = 今回は一年生のコンピュータリテラシーの授業でも学習するLaTeXについてまとめました。 実際に基礎科学実験のレポートなどで使っていただけるようにまとめたつもりです。 <
> == LaTeXとはなんぞや? == LaTeXとは文章整形システムで、報告書や論文などの印刷物やPDFファイルを作成するための組成ソフトウェアです。 LaTeXを用いて文章を作る利点としては以下のことがあります。 * 文章を作成する際に、ユーザー自身が見栄えを気にすることなく文章を書くことができる。 * 数式を綺麗に記述できる。 * 数式や章の番号を自動的に生成してくれるので手間が省ける。 逆にLaTeXの難点としては以下のことがあります。 * コマンドを書いて文章を作成するので、慣れがないと文章の作成に時間が掛かってしまう。 * コマンドを書き並べただけでは仕上がりのイメージが把握しにくい。 将来的にLaTeXを使いこなすことができた方が良いので実験のレポートなどもLaTeXを使って書くことを推奨します。 ちなみにMMAの部誌もTeXで書かれています。 <
> == 準備 == 今回はTeXの導入からやりますが、事前にやっておいていただけると講習が捗ります。 LaTeX環境はgoogle大先生にでも聞いて各自設定してください。 -windows- http://did2memo.net/2012/04/23/easy-latex-install-windows-201204/ -mac- http://qiita.com/items/71d9ec5c1e46b95372cf sshについて→http://wiki.mma.club.uec.ac.jp/mernao/HowToConnectNest?highlight=%28mernao%29%7C%28ssh%29 <
> == TeXファイルのコンパイル,PDFの生成 == TeXファイルのコンパイルには platex, xdvi, dvipdfmx コマンドを使います。 {{{#!wiki solid $ platex [.texファイル] }}} platexコマンドを用いてTeXファイルからauxファイル, dviファイル, logファイルが生成します。 dviファイルにはTeXファイルのコンパイルされた結果が出力されているので、このファイルを開くことで文章の見栄えを確認できる。 {{{#!wiki solid $ xdvi [.dviファイル] }}} xdviコマンド用いてdviファイルを開いて、文章の見栄えを確認できます。 TeXで文章を生成していく場合、一度のコンパイルではなかなか上手くいかないことが多く、そのたびにxdviコマンドを打ち込んでいては非効率的な作業になってしまいます。そこでxdviウィンドウをバックグラウンドで動作させておいて、コンパイル後ウィンドウをフォーカスして画面を更新を反映させましょう。 {{{#!wiki solid $ dvipdfmx [.dviファイル] }}} dvipdfmxコマンドを使うことでdviファイルから最終目的であるpdfファイルを生成できます。 <
> == TeXファイルの構造について == TeXファイルは大きく3つに分けることができます。 サンプルプログラム(miturin_217/TeX_Kousyu/Sample1.tex)を見てみましょう。 Sample1.tex {{{#!highlight haskell \documentclass[a4j,10pt]{jarticle} %文章クラス %プリアンブル \title{ Sample1 } \author{ @Mitu217 } \date{ 2013年4月6日 } \begin{document} %document環境 \maketitle 本文 \end{document} }}} Sample1.pdf {{attachment:スクリーンショット 2013-04-14 16.17.03.png}} それぞれのパーツについて解説していきます。 {{{#!highlight haskell \documentclass[オプション]{jarticle} }}} 文章クラスと呼ばれている部分。文章の種類を指定できる。今回は日本語の論文やレポートを表すjarticleを指定する。 オプションでは用紙サイズとフォントサイズを指定することができる。 * 用紙サイズ : a4j, b5j * フォントサイズ : 10pt, 11pt, 12pt {{{#!highlight haskell \begin{document} \maketitle     本文 \end{document} }}} document環境と呼ばれる部分。ここには文章の本文を書いていくことになります。 \maketitleは後述するプリアンブルの中で設定した氏名などを出力するコマンドです。 {{{#!highlight haskell \title{ Sample1 } \author{ @Mitu217 } \date{ 2013年4月6日 } }}} 文章クラスとdocument環境の間にあるプリアンブルと呼ばれる部分。ここでは表題,氏名などのタグを設定できるだけでなく、文章内で画像を挿入するためのパッケージを指定することができます。 <
> == LaTeXのコマンド == LaTeXは某wordとは違い、テキストデータ(.texファイル)にコマンドを記述し、それをLaTeXでコンパイルすることでPDFなどの文章を作成します。ですから、LaTeXを使いこなすにはコマンドを知っていなければなりません。 ここでは、コンピュータリテラシーの時間にやるような基本的なことに加えて知っておくと便利なコマンドもいくつか紹介しておきます。 最後には、復習用に課題をいくつか用意しておくので挑戦してみてください。 <
> === 文章見出し === 教科書とか参考書を眺めていると見出しに「第一部」や「1.2」という見出しを見ますよね? そういった見出しもLaTeXならコマンドを書くだけで簡単に設定することができます。   まずはサンプルを見てみましょう。 Sample2.tex(document環境のみ) {{{#!highlight haskell \section{見出し1} \subsection{見出し2} }}} Sample2.pdf {{attachment:スクリーンショット 2013-04-14 16.19.07.png}} '''\section,\subsection''' このコマンドを用いることで{}内を見出しにすることができます。   実験のレポートを書くには、これで「1. 目的」とか書くと見栄えがよくなります。「1.1」「1.2」のように書くにはサンプルのように「sub」を加えればOKです。さらに加えて「\subsubsection」と書くと「1.1.1」という風になります。 <
> === 箇条書き === 箇条書きには3つの種類があります * itemize Sample3.tex(document環境のみ) {{{#!highlight haskell \begin{itemize} \item 箇条書き1 \item 箇条書き2 \item 箇条書き3 \end{itemize} }}} Sample3.pdf {{attachment:スクリーンショット 2013-04-14 16.19.19.png}} 「itemize」は頭に「 • 」がついた箇条書きのコマンドです。 <
> * enumerate Sample4.tex(document環境のみ) {{{#!highlight haskell \begin{enumerate} \item 箇条書き1 \item 箇条書き2 \item 箇条書き3 \end{enumerate} }}} Sample4.pdf {{attachment:スクリーンショット 2013-04-14 16.19.40.png}} 「enumerate」は頭に数字が振られている箇条書きのコマンドです。 <
> * description Sample5.tex(document環境のみ) {{{#!highlight haskell \begin{description} \item[テスト1] 箇条書き1 \item[テスト2] 箇条書き2 \item[テスト3] 箇条書き3 \end{description} }}} Sample5.pdf {{attachment:スクリーンショット 2013-04-14 16.19.50.png}} 「description」は頭につける記号をユーザー自身が[]内に指定することができます。 <
> === 表組み === * 基本的な表 Sample6.tex(document環境のみ) {{{#!highlight haskell \begin{tabular}{|l|c|r|} \hline セル1 & セル2 & セル3 \\ \hline セル4 & セル5 & セル6 \\ \hline セル7 & セル8 & セル9 \\ \hline \end{tabular} }}} Sample6.pdf {{attachment:スクリーンショット 2013-04-14 17.46.16.png}} それぞれのコマンドについて解説していきます。 '''\begin{tabular}{|l|c|r|}''' '''\begin{tabular}''' 表組みの開始のコマンドです。 '''{|l|c|r|}''' 縦方向のセルの文字を寄せる方向を設定します。「|(バーティカルバー)」は縦方向のラインを表しています。 ||l||左方向に文字を寄せる|| ||c||中央に文字を寄せる|| ||r||右方向に文字を寄せる|| '''\hline''' 横方向のラインを表しています。 '''\\''' 改行を表しています '''&''' セルの区切り目を表しています。 '''\end{tabular}''' 表組みを終わりのコマンドです。 <
> * セルの結合とタイトル付け   結果を表にまとめる際に、同じ数字のデータを並べて書いてしまっては見栄えがよくありませんよね?そこでセルの結合をおこない見栄えをよくしましょう。 Sample7.tex(document環境のみ) {{{#!highlight haskell \begin{table} \caption{タイトル} \begin{tabular}{|l|c|r|} \hline & \multicolumn{2}{|c|}{セル1} \\ \cline{2-3} セル2 & セル3 & セル4 \\ \cline{2-2} & セル5 & \\ \hline \end{tabular} \end{table} }}} Sample7.pdf {{attachment:スクリーンショット 2013-04-14 16.20.04.png}} '''\caption{タイトル}''' 表にタイトルをつけることができます。実験のレポートではタイトルをつける位置が決まっているので教科書の指示に従ってください。 '''\multicolumn{2}{|c|}{セル1}''' 列をまたぐセルを設定するコマンドです。使い方は以下のようになります。 {{{#!wiki solid \multicolumn{またがる列数}{文字寄せの設定}{セルの中身} }}} '''\cline{2-3},\cline{2-2}''' 横方向のラインを引くセルを設定できます。一つのセルにのみ引く場合は「2-2」のように同じ数字を設定します。 {{{#!wiki solid \cline{罫線を引く最初のセルの列数-最後のセルの列数} }}} <
> * 文章中に表を配置する時の位置の設定   さきほどの表のコマンドでは複数の表を連続して書いたとき縦方向につながってしまいます。見た目をスマートにするためにも、表を横方向に2つ並べてみましょう。また、ページ内での表の位置についての設定も同時に見ていきます。 Sample8.tex(document環境のみ) {{{#!highlight haskell \begin{table}[htbp] \begin{center} \begin{tabular}{cc} \begin{minipage}{0.5\hsize} \begin{center} \begin{tabular}{|c|c|c|} \hline a & b & c \\ \hline d & e & f \\ \hline g & h & i \\ \hline \end{tabular} \caption{aが9つ} \end{center} \end{minipage} \begin{minipage}{0.5\hsize} \begin{center} \begin{tabular}{|c|c|c|} \hline j & k & l \\ \hline m & n & o \\ \hline p & q & r \\ \hline \end{tabular} \caption{bが9つ} \end{center} \end{minipage} \end{tabular} \end{center} \end{table} }}} Sample8.pdf {{attachment:スクリーンショット 2013-04-14 16.20.14.png}} '''\begin{table}[htbp],\end{table}''' ページ内での表の表示位置を設定するためのコマンドです。[]内のコマンドで表示位置を設定します。 ||h||その場所に表を表示|| ||t||そのページの一番上に表を表示|| ||b||そのページの一番下に表を表示|| ||p||違うページに表示|| '''\begin{tabular}{cc}''' 先ほどもこのコマンドは表組みの開始のコマンドとして出てきました。今回は横に二つ並べた表それぞれの表示位置を設定しています。 '''\begin{center}''' このコマンドは全部で3回でてきますが、どれも表を中央に寄せる設定をおこなっています。1回目のコマンドは二つの表をまとめた時の位置、2,3回目のコマンドはそれぞれの表の位置の設定となります。 '''\begin{minipage}{0.5\hsize}''' このコマンドを用いることで表を表示する領域の枠を設定できます。{0.5\hsize}の0.5をかえれば表を大きくも小さくもできます。 <
> === 数式 === LaTeXのメインでもある数式のコマンドです。 さすがにこの場ですべてのコマンドを教えることはできないので、自分が使いたいものを[[http://www1.kiy.jp/~yoka/LaTeX/latex.html#suushiki|こちら]]などのサイトから選びましょう。 * とりあえずいろいろ使ってみる1 Sample9.tex(document環境のみ) {{{#!highlight haskell \begin{eqnarray} G_{-1}(x,y)=x^{n-1}+x^n-1 \end{eqnarray} \begin{eqnarray} W(D)&=&(I(D),(1+D)I(D)) \nonumber \\ &=&I(D)[1,1+D] \nonumber \\ &=&I(D)G(D) \end{eqnarray} \[ x&=&a+b+c \] 本文中にも数式を$ x&=&a+b+c $表示できます。 }}} Sample9.pdf {{attachment:スクリーンショット 2013-04-14 16.20.26.png}} とりあえず基本的だと思われるものをいろいろ使って書いてみました。解説していきます。 '''\begin{equation} ~ \end{equation},\[ ~ \],$ ~ $''' 数式の始まりと終わりを表すコマンドです。このコマンドで囲まれた数式は改行して番号を振られて表示されますが、他のコマンドを使えば改行しないようにしたりできます。 ||\begin{equation} ~ \end{equation}||改行して数式を表示、番号を振る|| ||\[ ~ \]||改行して数式を表示、番号を振らない|| ||$ ~ $||文章中に数式を表示する|| '''_{ }, ^{ }''' 「下付き文字」と「下付き文字」の表示ができるコマンドです。サンプルのように複数の文字を上下に付ける時は{}で囲わないとバラバラに処理されてしまいます。 '''\nonumber''' 数式が数行にわたってしまった時に使用するコマンドです。通常、\begin{equation} ~ \end{equation}の中では、改行するごとにそれぞれの行に番号が振られてしまいますが、このコマンドを使用することで番号を振ることをキャンセルすることができます。 * いろいろ使ってみる2 Sample10.tex(document環境のみ) {{{#!highlight haskell \begin{eqnarray} y=\frac{\sort[2]{1+x}}{1-x} \end{eqnarray} \begin{eqnarray} \left(\frac{1+x}{1-x}\right) +(\frac{1-x}{1+x}) \end{eqnarray} \begin{eqnarray} c_{k,l}=\left\{ \begin{array}{ll} 1[\mathrm{m/s]}] & (l=k) \\ \alpha & (|l-k|=1) \\ 0[\mathrm{m/s]} & (上記以外) \\ \end{array} \right. \end{eqnarray} }}} Sample10.pdf {{attachment:スクリーンショット 2013-04-14 16.20.42.png}} '''\frac{\sqrt{1+x}}{1-x}''' 「分数」と「n方根」を表示するコマンドです。\fracが分数で\sqrtが平方根です。詳しい使い方は次のようになります。 {{{#!wiki solid \frac{分子}{分母} }}} {{{#!wiki solid (n方根) \sqrt[n]{ルートの中身} }}} '''\left(\frac{1+x}{1-x}+\frac{1-x}{1+x}\right)''' このサンプルを見てみると何かおかしいですよね?      これまで特に括弧については考えずにコマンドを書いてきました。しかしサンプルのように分数を中身にすると、中身が縦に広いのに対して括弧の大きさが通常のままです。そこで\left(,\right)コマンドを使います。このコマンドを使うことで、括弧の大きさが中身によって自動的に調整されます。 '''c_{k,l}=\left\{ \begin{array}{ll}, \end{array} \right.''' これは数学の教科書などでよく見る「場合分け」を作るためのコマンドです。 '''\left, \right.'''     このコマンドでは場合分けの開始と終わりを決めます。\right.を\right\にすると終わりに括弧を付けることができます。 '''\begin{array}{ll}, \end{array}''' 場合分けの中身をこの間に書きます。サンプルのように値と条件を分けて書くような場合は 「\begin{array}{ll}」を値と条件を分けて書かない時は「\begin{array}{l}」と書きましょう。 '''\mathrm''' 通常数式の中では、イタリック文字(斜めの文字)で表示されます。しかしサンプルのように数式中に単位などのイタリック文字にしたくない物があります。そんな時はこの\mathrmコマンドを使いましょう。{}内の文字がイタリック文字になることを回避することができます。 '''\alpha''' ギリシャ文字を表示するときは通常の変換で表示することも可能ですが、コマンドを使用した方が奇麗に表示することができます。ギリシャ文字の一覧を表は[[http://www002.upp.so-net.ne.jp/latex/greece.html|こちら]]などを参考にしてみてください。また、他の記号についても先ほどのサイトで必要なものは揃うと思います。 === 画像の挿入 ===   実験のレポートに限らず、文章を書いていると写真を貼付けたい時があると思います。そんな時もコマンドを書けばよいのですが、多少の注意点があります。それも含めて解説していきます。 Sample11.tex {{{#!highlight haskell %プリアンブル \usepackage[dvipdfm]{graphicx} %document環境 \begin{figure}[htbp] \begin{center} \includegraphics[width=5cm]{figure1.jpg} \end{center} \caption{図の説明} \end{figure} }}} Sample11.pdf {{attachment:スクリーンショット 2013-04-14 16.20.52.png}} '''\usepackage[dvipdfm]{graphicx}''' これまでのコマンドと違うのは、コマンドを使うために事前の準備が必要ということです。まず、プリアンブルにコマンドを書かなければならないということです。 プリアンブルに書かれていることは、「graphicx」というパッケージをつかうからよろしく!という感じのことです。(適当) '''document環境部分''' \begin{figure}[htpb],\end{figure}は画像挿入コマンドの始まりと終わりを、\begin{center},\end{center}は文章内の画像の位置を、\includegraphics...は貼付ける画像を指定したり画像の大きさを指定することができます。 {{{#!wiki solid \includegraphics[width=画像の横方向の大きさ]{画像のファイル名} }}} 画像は今回のサンプルではjpeg形式の画像を使用していますが、本来であればeps形式の画像を使わなければなりません。ですから、jpeg形式の画像を使うには.bbファイルを作成しなければなりません。各自の環境で.bbファイルを作れるようにしておきましょう。 また、挿入した画像は.texファイルと同じディレクトリにおいてないと表示されないことにも注意しましょう。 == 復習用課題 == === 課題1 ===   次と同じ文面を作成してください。 {{attachment:スクリーンショット 2013-04-14 17.46.16.png}} === 課題2 ===   次と同じ文面を作成してください。 {{attachment:スクリーンショット 2013-04-14 21.36.53.png}} === 課題3 === 次と同じ文面を作成してください。 {{attachment:スクリーンショット 2013-04-14 21.40.17.png}} <>