学生実験 1-1 : LaTeX によるレポート作成(當間)
- 更新情報
- 進め方
- コンテンツ
- 参考文献・サイト
更新履歴
- 2006-04-12: ページを公開.改訂時にはこちらに履歴を残すようにします.
- 2006-04-13: クイックスタートの手順5と手順6で指定したファイル名が誤っていたため,訂正しました.
- 2006-04-13: 課題と提出方法の提出方法を訂正しました.
- 2006-04-14: 良く使う環境の使い方(2.2)サンプルの場所が分かりやすくなるように,目次を改訂しました.また,レポートの書き方に関する参考文献をこのページにも掲載しました(元々はサンプルPDFファイル内にのみ掲載).
- 2006-04-19: レポート提出期限を+3日延長しました.金曜日のクラスは翌週月曜日,具体的な日付はここの通りです.
- 2008-05-19: LaTeX を学んでない2年次向けに改訂しました.
- 2008-05-20: 参考文献サンプルを追加しました.
- 2008-05-22: FAQにエラー: dyld: Library not loaded:,画像ファイルを上手く読み込めないを追加.
- 2009-04-20: 課題2の解答編を追加.
実験の進め方
- 内容と達成目標
-
- 情報工学実験1,2においてはテーマ毎に1つ以上のテーマが与えられ,テーマ毎にレポート提出が求められる.
- 今回のテーマ「LaTeXによるレポート作成」では幾つかの課題(Level X)を通して以下の項目を達成することを目標とする.
- 達成目標1:一般的な書籍・学術論文に見られる数式・図表・目次等を含めた文書を LaTeX を用いて作成することができる.
- 達成目標2:目的・目標を把握して実験に取り組み,過程・結果・考察を理論的に考え,レポートとして書き上げることが出来る.
- 注意点:実験では必ずしも全ての手順を示すとは限りません.分からない場合には何らかの方法(先生やTA,周りの学生,先輩,google 先生に聞いたり,自分で試行錯誤してみたり・・)で解決しましょう.その過程を通して自分で学ぶスキルと自己解決するスキルを身につけることも大切です.
- 工夫:実験で課している課題は最低限のレベルです.各自,気になることがあればチャレンジし,必要に応じてレポートとしてまとめましょう.
- 実験の進め方
-
- テキスト・補助教材:本ページや参考文献参照
- 作業スタイル:個人作業(1人1レポート).
- 評価基準
-
減点方式.主に以下の点に関してチェックを行う.
減点箇所が見あたらない場合には満点となる.
減点項目 - 表紙に含めるべき情報が欠落している場合.
- 適切にコマンドを用いていない場合(節・図・表・数式・列挙・参照など)
- 出力を強引に作成・整形している場合(「\\」による手動改行,全角スペースによる文字間隔補正など).
- サンプル出力と*大きな*ズレがある場合.
- 誤字,脱字.
- 提出期限を過ぎた場合.
その他:大学では一般社会に通用する技術だけでなく,一般常識も学びます.期限を守ることやコピペだけで仕事を済ませないこと,また必要に応じてコミュニケーションを取る事も忘れずにやってください.
- 課題と提出方法
-
- 全ての Level にトライし,レポートとしてまとめよ.
- 1名1レポート提出.
- 表紙には以下の項目を記述すること.
- 課題番号,タイトル,担当教員名
- 氏名,学籍番号
- 実験日,提出期限日,提出した日
- レポートは LaTeX で作成し,印刷物を提出すると共に tex ファイル及び,作成したスクリプト等一式を以下の場所に保存する事.提出方法やフォルダ名は以下の通り.
以下は ~/jikken1 に提出物を保存している場合の例です. 修正する場合も同じコマンドで構いませんが,アカウント名(j050xx)を間違えないように注意する事! rsync 自体の説明は例えばここを参照してください.
% cd (ホームディレクトリに移動) % rsync -auve ssh \ ~/jikken1/ \ j050xx@naha:/Users/teacher/tnal/jikken1-fri/j050xx/ % rsync -auve ssh \ ~/jikken1/ \ j050xx@naha:/Users/teacher/tnal/jikken1-tue/j050xx/
上記はコマンドが長いので「\」を用いて改行していますが, 一行にまとめて書いても良いです. - 提出期限:次回実験日の開始時刻前までに 705 室へ(4/14のクラスの期限は4/24,4/18のクラスは4/28).
0. 事前準備
- X11.appをインストール.
- EasyPackageのpkg/ptex-euc-pkg, math/gnuplot, graphics/ImageMagick, graphics/gimpをインストール.
各アプリケーションの説明は参考文献・サイトを参照.
1. LaTeXによるレポート作成
1.1 LaTeXとは?
レポートや論文等を綺麗に出力するための文書整形ツール(言語)です. C言語やJavaと同様にLaTeXはコンパイラ言語なので,「作成(プログラミング)→コンパイル→出力確認→適宜修正」といった手順で作成します.
1.2 LaTeX を使う利点
Word等のワープロソフトと比較して・・・
- 無料で使える(最近は NeoOffice 等も出てきましたが.).
- 比較的容易に綺麗な出力を作り出すことが出来る,
- 数式に強い.
- 誰かが作ったテンプレート(xx学会提出用のフォーマット,名詞や履歴書を作るパッケージ等)を利用して格好良いものが簡単に作れる.
- 数式・図・表の番号割り振りや,目次,参考文献リストとの相互参照や索引などを自動で作成してくれる.
- 使い慣れたテキストエディタ(MacOSXなら emacs, テキストエディット.app, mi 等)なら何でも使える.
- テキストエディタで良いので比較的スペックの低い環境でも容易に文書作成できる(動作が軽いので,快適に作業できる).
- (主観ですが)ワープロソフトにありがちな「勝手なお節介機能」をしないので,いらいらしない.
1.3 クイック・スタート!
- 課題:Level 1
- 以下の手続きの通り,実際に LaTeX を使って文章を作成しなさい.
- (準備)今回の実験用のディレクトリを作成してください(以下はサンプルです.各自で使いやすい用に作成してください).
> mkdir jikken1 > mkdir jikken1/latex > cd jikken1/latex
- (文章作成)以下の文章を j050xx-1.tex という名前で保存しましょう.各行の意味は下表の通りです.
\documentclass[a4paper,10pt]{jarticle} \begin{document} これはてすとです. \end{document}
- (X11)X11.app を起動し,作成した文書を保存したディレクトリへ移動してください.
X11.appの場所:アプリケーション→ユーティリティ→X11.app
(Dockへ登録すると便利でしょう) - (コンパイル)各種の tex コマンド(\documentclass など)を文章に適用した出力を生成します.
> platex j050xx-1.tex
- (出力確認)実際の見た目を確認します.
> xdvi j050xx-1.dvi
- (PDF作成)印刷用,配布用に他の人から閲覧可能な一般的な形式(ここではPDF)に変換します.
> dvipdfmx j050xx-1.dvi
注記1:X11は出力を確認する(xdviを使う)ためだけに使っています. xdvi を使わず,dvipdfmxでPDFを直接作成してから確認する場合には, X11を使わなくても文章を作成することが出来ます(不便ですが).
注記2:上記の例ではコンパイル platex を一度しか実行していませんが, 本来なら複数回実行すべきです.これは,「一度目のコンパイルで文章や 図表を配置し図表番号を確定した後に,二度目のコンパイルで番号を 参照先へ埋め込んだり,目次を作成する」といったプロセスを経るためです. うまく参照できない場合は2回以上コンパイルした後に確認してみてください.
表1:サンプルソースにおける意味解釈
\documentclass[a4paper,10pt]{jarticle} \begin{document} これはてすとです. \end{document} |
|
2. 良く使う LaTeX 環境とコマンド(命令)
2.1 LaTeX で文書作成する際の決まり事
詳細は LaTeX Tipsの基礎ゼミレジュメや, 文書整形システム LaTeX 入門 を参照すると良いでしょう. 以下は上記資料からの抜粋で,必要最小限を整理したものです.
- LaTexコマンド(命令)
LaTeXの命令は原則として「“\”で始まり,半角空白で終わる」.
- コメントアウト(メモ等出力させたくない箇所を出力させない)
「半角パーセント“%”から改行までの内容」はコメントアウトされまる.
- そのままでは出力されない記号
以下の記号は,そのまま入力しても出力できない特殊文字である. 出力には見えないが「半角空白」も含まれる. ソースファイル等,見た目通り出力させる場合には, 命令ならば「\verb|###|」や バックスラッシュによるエスケープ(\#),, またはverbatim環境(\begin{verbatim} ... \end{verbatim}) を使うことで可能である.
<そのままでは出力されない記号> , #, $, %, &, _, {, }, <, >, \, |, ^, ~
- 環境と命令
LaTeXでは,文書を論理構造もしくは表現構造に分けて作成します. 分けられた構造と,それをLaTeXで出力するために使用する環境・命令 を対応づけたのが以下の図になります.
環境の場合は,以下のように \begin と \end で中身を囲う用にして使います.
\begin{環境名} 中身 \end{環境名}
命令の場合は,以下のように々な形式で使われますので,参考文献に挙げているコマンド一覧等を参考に調べて使用してください.
\命令 \命令{引数} \命令{引数1}{引数2}{引数3}
- 空白・改行・段落
半角空白文字(半角スペース)は, コマンドの終了文字(制御文字)として利用しているため, 出力上では無視されます. また,改行も単体では無視されてしまいますので, 段落を変える場合には「空行(改行だけの行)」を挿入することになります. 実際に試してみてください.
2.2 良く使われる環境の使い方
個条書きサンプル
個条書きを書くためには,itemize 環境(順序無しリスト),enumerate 環境(数字順序付きリスト)を使います.
\documentclass[a4paper,10pt]{jarticle} \begin{document} \begin{itemize} \item 箇条書き1. \item 箇条書き2. \begin{itemize} \item 箇条書き2.1.ネストも出来ます. \item[(a)] 任意のラベル付けも簡単です. \end{itemize} \item 簡単に箇条書きできます. \end{itemize} \end{document}
図1:個条書きサンプル
数式サンプル
$を使って文書中に数式を挿入するタイプ(式(1))と, equation 環境で1行立てて数式を挿入するタイプ(式(2),式(3))があります. また,複数個の数式を書きたい場合には eqnarray 環境を使います(式(4),式(5)). なお,図2下段では \label と \ref を用いて,自動的に式番号を挿入しています. TeX ソース内には直接番号を記載していません.
\documentclass[a4paper,10pt]{jarticle} \begin{document} 文中に数式を埋め込むには $y=ax^ + b$ とします. equation 環境を使った例. \begin{equation} \frac{1}{x} \end{equation} eqnarray 環境を使った例1. \begin{eqnarray} \lim \frac{a_n}{b_n} = r,~~0<r<\infty \\ \frac{a_{n+1}}{a_n} \leq \frac{b_{n+1}}{b_n} \end{eqnarray} eqnarray 環境を使った例2. \begin{eqnarray} \lim \frac{a_n}{b_n} &=& r,~~0<r<\infty \label{eq:lim}\\ \frac{a_{n+1}}{a_n} &\leq& \frac{b_{n+1}}{b_n} \label{eq:a_n} \end{eqnarray} 式(\ref{eq:a_n})を式(\ref{eq:lim})の条件を考慮して展開すると・・・ \end{document}
図2:数式サンプル
図サンプル
図を挿入するには figure 環境を使います(FAQ「画像ファイルを上手く読み込めない」も参照してください). 一般的には EPS 形式の図を挿入します. EPS 形式で図を保存する事の出来る作図ソフトとしては,OmniGraffle(機能制限付きですが,Professional ではない方は試用できます))や,tgif(EasyPackageのjapanese/tgif)等があります.
また,gnuplot で作成した図を直接 EPS 形式で保存したり,tgif で読み込める obj 形式で保存することも可能です.直接 EPS 形式で保存するには以下のようにやります.
LaTex に gnuplot の図を取り込む
- グラフ化するデータを準備する(参考:pchistory.dat.CPU,メモリ,HDD容量の推移データ).
- gnuplot でグラフ化する.以下は上記サンプルデータを線グラフ化する例.ここでは LaTeX 用に eps 形式で作成しています.
gnuplot> set terminal postscript eps gnuplot> set output "clock.eps" gnuplot> set title "Transition of CPU speed" gnuplot> set xlabel "year" gnuplot> set ylabel "clock" gnuplot> plot "pchistory.dat" using 1:2 with line
- LaTeX に取り込む.
\documentclass[a4paper,10pt]{jarticle} \usepackage{graphicx} \begin{document} \begin{figure} \begin{center} \includegraphics[scale=0.5]{clock.eps} \caption{図のテスト} \end{center} \end{figure} \end{document}
図3:図サンプル
どうやる?(オプション課題)
- 様々なプロット方法について.
- サンプルデータには,CPU速度の他にメモリサイズ・HDD容量が記入されています.これらを同時に折れ線でグラフ表示(プロット)するにはどうすれば良いですか?
- 一部のデータを他の表現(棒グラフ等)でプロットするには?
- 縦軸に異なる2軸(横軸左にCPU速度,右にメモリサイズ)を用いてプロットするには?
- 文字飾り等を変更するには?
- 文字サイズを変更するには?
- カラー出力するには?
- EPS出力以外に何がある?
表サンプル
表(テーブル)を書くためには,table 環境と tabular 環境を利用します.
\documentclass[a4paper,10pt]{jarticle} \begin{document} \begin{table}[htb] \begin{center} \caption{このレポートを作成している環境} \label{table:実験設定} \begin{tabular}[htb]{r|l} \hline ソフト名 & バージョン \\ \hline \hline OS & Mac OS X バージョン 10.5.2 \\ \hline 端末 & ターミナル.app バージョン 2.0.1 (240) \\ \hline エディタ & GNU Emacs GNU Emacs 22.1.1 \\ \hline \LaTeX コンパイラ & pTeX 3.141592-p3.1.10 (utf8) (Web2C 7.5.4) \\ \hline \end{tabular} \end{center} \end{table} \end{document}
図4:表サンプル
参考文献サンプル
参考文献を書くためには,thebibliography 環境を利用します. 注意点として,URL等の記号を含めた文献をリストアップする場合には,verbコマンドを利用する等して文字列として出力するようにしてください.
\documentclass[a4paper,10pt]{jarticle} \begin{document} レポートの書き方については文献\cite{1,2}を参考にしてください. \LaTeX の使い方については文献\cite{3,4,5}を参考にしてください. \begin{thebibliography}{99} \bibitem{1} レポートの書き方のページ, 徳島大学 桑折先生\\ \verb|http://www.ias.tokushima-u.ac.jp/physics/classes/reporting/wreport.html| \bibitem{2} レポート・論文の構成法と書き方 2004\\ \verb|http://www2.ikuta.jwu.ac.jp/~kuto/kiso2004/Writing/HowToWrite.html| \bibitem{3} TeX/LaTeX入門, WikiBooks\\ \verb|http://ja.wikibooks.org/wiki/TeX/LaTeX入門| \bibitem{4} LaTeXしよう!\\ \verb|http://www.topstudio.co.jp/~kmuto/latex/| \bibitem{5} LaTeXコマンドシート一覧\\ \verb|http://www002.upp.so-net.ne.jp/latex/| \bibitem{6} LaTeXの使い方\\ \verb|http://www.maekawa.is.uec.ac.jp/doc/documentation/jlatex/revise/revisec.html| \bibitem{7} LaTeX handbook\\ \verb|http://www.med.osaka-u.ac.jp/pub/anes/www/latex/latex.html| \bibitem{8} BibCompanion:― 参考文献管理ソフトウェア ―\\ \verb|http://www.surf.nuqe.nagoya-u.ac.jp/~nakahara/Software/BibCompanion/| \end{thebibliography} \end{document}
図5:参考文献サンプル
- 課題:Level 2
-
このサンプルと同様な出力を得る TeX ファイルを作成せよ. ただし,名前・学籍番号・日付を変更すること. また,提出する際には TeX ファイル本体を指定の場所(下記)に置くこと. ソースファイルはファイル名を「アカウント.tex」(例:j05001.tex)とせよ.
提出方法はここを参照.
- 課題:Level 2の解答編(latexサンプル)
-
- サンプルダウンロード: zip
FAQ
- LaTeX環境のインストールの仕方
-
- EasyPackageの「インストールを参照して GUI 番をインストールする.
- EasyPackageを最新版にアップデートする.
- 「EasyPackage.app」を起動.
- 「EasyPackage」メニューから「EasyPackageの更新」を選択し,最新版にアップデート.2008年5月時点で ver.0.2.26 が最新です.
- パッケージ一覧を取得する.
- 「パッケージ」メニューから「一覧を取得」を選択する.
- パッケージをインストールする.
- 分類「pkg」の中から「ptex-euc-pkg」を選択し,インストール.ダブルクリックでインストールできない場合には,選択した状態で「パッケージ」内の「インストール」を選択.(インストールそのものの時間が結構かかります)
- クイックスタートを参考にし,動作確認.
- 正しく書いてるはずなのにコンパイルできない.エラーが文字化けして読めない.
-
主に,ファイルの文字コードと,コンパイラ側で扱える文字コードが一致していない事が原因である事が多いです.platex コマンドでコンパイルできないのであれば,ファイルの文字コードにあったコマンド(SJISならplatex-sjis,EUCならplatex-euc,UTF-8ならplatex-utf8)を使ってみましょう.
- emacs でのデフォルト文字コードを UTF-8 にするには?
-
- .emacs に以下の設定を保存.
;;; 言語環境の指定 (set-language-environment "Japanese") ;;; 漢字コードの指定 (set-default-coding-systems 'utf-8) (set-buffer-file-coding-system 'utf-8-unix) (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (set-clipboard-coding-system 'sjis-mac)
- ターミナルの文字コードを UTF-8 に設定.
- .emacs に以下の設定を保存.
- エラー: Undefined control sequence.
環境名(figure等)やコマンド名(section{}等)のスペルが間違っているか, コンパイラ側とファイルの文字コードが整合取れていない事が考えられます. スペルミスの場合には上記エラーの前後に出力されている行数を参考に,修正して管さ. 文字コードの場合には「エラーが文字化けして読めない」を参考にして対応してください.
- エラー: dyld: Library not loaded
アプリケーションが必要としているライブラリがインストールされていない場合に出るエラーです.例えば,readline が必要な状況でインストールされていない場合,次のようなエラーが出ます.
#エラー例 oct3:lib tnal$ gnuplot dyld: Library not loaded: /usr/local/lib/libreadline.4.3.dylib Referenced from: /usr/local/bin/gnuplot Reason: image not found Trace/BPT trap
- 上記の例では,ライブラリ readline のバージョン 4.3 がインストールされていない場合に出るエラーです.
- readline 自体がインストールされていない(「ls /usr/local/lib/libreadline*」で何も見つからない)ならば,readline をインストールしましょう.
- readline 自体はインストールされているが,バージョン番号が異なる場合には ln を使ってそのリンクを張りましょう.例えば,libreadline.5.2.dylib がある場合には次のようにします.
prompt> sudo ln -s /usr/local/lib/libreadline.5.2.dylib /usr/local/lib/libreadline4.3.dylib
- 画像ファイルを上手く読み込めない
- このページ(2008-04-03 PDF画像をlatex文書に埋め込む)を参考に,グラフ等をPDF形式で用意し,mediabb.sty を使ってPDFファイルを直接読み込む方法が一番簡単のようです.
参考文献・サイト
- レポートの書き方
- LaTeX関連
-
- google: Latex コマンド 数式
- 白土先生の資料
- LaTeX Tips @ mikilab
- 文書整形システムLaTeX入門
- LaTeXしよう!
- BiBTeX入門(1) TeXでの参考文献の引用方法
- 2008-04-03 PDF画像をlatex文書に埋め込む
- tgif / gnuplot関連
用語
- エスケープ,エスケープ処理
-
- C言語での「printf("\n");」による改行,
- シェル(tcsh等)で正規表現を用いて「ls *」で全てのファイルを表示させる場合,
- 様々なプロット方法について.