計算物理学II (第４回)第４回の内容• LaTeXによる⽂書作成• gnuplot によるグラフ作成• シェルスクリプトの基本

端末操作に関するコメント• lsをもっと使ってください。今どのディレクトリにいるのか、コマンドの実⾏後ファイルができているかどうか、などは表⽰しないとわかりません• タブ補完機能を使ってキーボードのタイプ数を減らしてください。
• 直前に打ったコマンドは↑で表⽰できます。⻑いコマンド⼊⼒でちょっとタイプミスしたときなど。
• コマンドが終了しないなどおかしくなったとき• C-c (コマンド強制終了)、C-d(通常の終了)、• emacsで⼊⼒に戻りたいときはC-g (キャンセル)• lessなどの表⽰中は q で終了• どうしてもダメなら端末やemacsのwindowをマウスで終了してくださいLaTeXによる⽂書作成LaTeX• ⽂章作成の組版システム。ラテフ、ラテックなどと呼ばれる• 数式がきれいに書ける。数学・物理向け• 物理ではMicrosoft Wordよりも標準的に使われる• 授業のレポート、卒業論⽂などにも使⽤可能• Windows, Macでも(TeXシステムをインストールすれば)使⽤可能• 最近はOverleaf (https://ja.overleaf.com/)というオンラインで共同編集できるTeXシステムもよく使われる• この授業ではemacsとシェルの練習を兼ねて全学計算機システムのLaTeXを利⽤

TeXによる⽂章作成の流れ• TeXソースファイルを作成(拡張⼦ tex)
• 図を含む場合は図のファイル(eps, pdfなど)も準備• TeXのコマンドでコンパイルして⽂章pdfファイルなどを作成

サンプルのTeXファイルからpdfを作成
https://wwwnucl.ph.tsukuba.ac.jp/~hinohara/compphys2-23/doc/texsample.tgz
からTeXのサンプルをダウンロードして解凍する。
wgetコマンドで直接URLからダウンロード

tar.gz圧縮ファイルがダウンロードされた

tgzファイルを解凍

texsampleという名前のディレクトリが解凍された
texソースファイルとpdfファイル(図)が⼊っているTeXソースファイル• emacsなどのテキストエディタで作成。(sample.texを開いてみてください)• まずは修正せずにこのままコンパイルしてみます。
• サテライト室でemacsを開くとウインドウの上半分にだけファイルの内容が表⽰されま
すが、C-x 1 でウインドウ分割を終了して全体に表⽰できます。

dviファイルの作成(コンパイル)• platexを使った⽅法ではまずdvi (device-independent file format)ファイルを作成する。
• platex texファイル でtexファイルからdviファイルを作成• texソース・ファイルの中で参照をしている場合は2回platexコマンドを実⾏

中略
定義されていない参照があるというエラーが出たらplatexを
もう⼀度実⾏中略
2回⽬はエラーが出ない
dviファイルが作成される

dviファイルからpdfファイルを作成する• dviファイルを表⽰する必要はない。
• dvipdfmx dviファイル名

でdviファイルから同名のpdfファイルを作成

同名のpdfファイルが作成された

pdfファイルを表⽰(サテライト室)• pdfビューワのevinceを使う。

pdfファイルを表⽰(リモート)• サテライト室なら直接画⾯に表⽰できるがリモートで作業する場合は⾃分のコンピュータにscpで転送する(ちょっと⾯倒)• Windows: WinSCPでpdfファイルをWindowsに転送• Mac, WSL: scpコマンドで転送。
• サーバの~/compphys2/4th/texsample/sample.pdfファイルをカレントディレクトリに転送したい場合は• scp s1234567@icho01.u.tsukuba.ac.jp:compphys2/4th/texsample/sample.pdf .
⾃分のコンピュータで実⾏

pdfファイルを表⽰(リモート)• Windows: エクスプローラーで該当のフォルダを開いてAdobe Readerなどで表⽰• Mac: Finderで該当のフォルダを開いてAdobe Reader, skimなどで表⽰• WSL: WindowsとUbuntuのファイルシステムは異なる
WindowsからUbuntuのファイルにアクセス→ エクスプローラーで \\wsl$ と⼊⼒するとUbuntuのファイルシステムが⾒える
ホームディレクトリにあるpdfファイルを探してAdobe Readerなどで表⽰
UbuntuからWindowsのファイルシステムにコピー→ Ubuntu側からWindowsのCドライブは /mnt/c として⾒えるのでcpコマンドでpdfファイルをwindows側にコピー。

TeX ͷςετυΩϡϝϯτ೔໺‫ ݪ‬৳ੜ2020 ೥ 7 ݄ 1 ೔֓ཁυΩϡϝϯτʹ֓ཁ (ΞϒετϥΫτ) ͕͋Δ৔߹͸͜͜ʹ‫͢·͠ࡌه‬ɻ

1 ͸͡Ίʹ
TeX ͰจষΛॻ͍ͯΈ·͠ΐ͏ɻ൒֯εϖʔεΛ 1 ͭ ͚ͩೖྗͯ͠΋ ෳ਺ ೖྗͯ͠΋ 1 ͭͱͯ͠Χ΢ϯτ͞Ε·͢ɻจষΛ్தͰվߦ͢Δ৔߹͸ TeX ιʔεϑΝΠϧͰ 1 ߦۭ͚·͢ɻ͜ΕͰվߦ͞Ε·͢ɻ2 ਺ࣜͷॻ͖ํ
2.1 ΠϯϥΠϯ਺ࣜϞʔυΠϯϥΠϯ਺ࣜϞʔυͱͯ͠จষதʹ਺ࣜΛೖΕΔ͜ͱ΋Ͱ͖·͢ɻf (x) = x ͳͲͱͰ͖·͢ɻ

2.2 σΟεϓϨΠ਺ࣜϞʔυσΟεϓϨΠ਺ࣜϞʔυͰ͸਺ࣜ༻ʹ 1 ߦ࢖ΘΕ·͢ɻf (x) = sin x͜ͷ৔߹͸ࣗಈతʹࣜ൪߸͕ৼΒΕ·͢ɻalign ‫ڥ؀‬ͷ͢΂ͯͷࣜͰࣜ൪߸͕͍Βͳ͍৔߹͸! ·A! = divA
これがTeXでpdfファイルを作る基本的な流れです。
∇·A=∇
続いてよく使うTeXのソースファイルの書き⽅を⾒ていきます。
·ͨ͸ͦͷߦͷΈࣜ൪߸͕͍Βͳ͍৔߹͸ nonumber ΋࢖͑·͢ɻ(1)

TeXソースファイルの構造
sample.texをemacsで開いて中⾝を⾒ていきましょう。
バックスラッシュ記号(＼)を出すには⽇本語キーボードでは\マーク(キーボードの右上)を使う。
冒頭でドキュメントクラスを指定。⽇本語でplatexを使う場合はjsarticleなど\documentclassから\begin{document}
までの領域をプリアンブルと呼ぶ\begin{document}から\end{document}までが本⽂。
texでは\begin{xxx} ~ \end{xxx}で囲まれた部分をxxx環境と呼ぶ。

%記号より右側はコメント⽂です。コンパイル時には無視されるので説明を書いています。

プリアンブルに書くこと• 使うパッケージを指定• \usepackage{パッケージ名}• ⽤紙の余⽩サイズ指定など• タイトル、著者、⽇付などはプリアンブルに記載• \title{タイトル名}• \author{著者名}• \date{⽇付} %本⽇の場合は \date{\today}とする• タイトル・著者・⽇付を本⽂に表⽰するには\begin{document}の直後に\maketitleと書く

本⽂• 概要がある場合はabstract環境に記述。
• \sectionで節番号が⾃動的に割り振られれる。⼤きい順に
部: \part, 章: \chapter, 節: \section, ⼩節: \subsection, \subsubsectionのように分割できます。

インライン数式モード• ⽂章中に数式を⽤いる場合は$ $で囲んで中に数式を記述

⽂章中に数式を⼊れることもできます。$f(x)=x$などとできます。

TeX ͷςετυΩϡϝϯτ

ディスプレイ数式モード
೔໺‫ ݪ‬৳ੜ2020 ೥ 7 ݄ 1 ೔֓ཁ

• 独⽴⾏に数式を⽤いる場合
υΩϡϝϯτʹ֓ཁ (ΞϒετϥΫτ) ͕͋Δ৔߹͸͜͜ʹ‫͢·͠ࡌه‬ɻequation環境、eqnarray環境などがあるが1 ͸͡Ίʹ
おすすめはamsmathパッケージ(アメリカ数学会)のalign環境を使う
プリアンブルに\usepackage{amsmath}TeX ͰจষΛॻ͍ͯΈ·͠ΐ͏ɻ൒֯εϖʔεΛ1 ͭ ͚ͩೖྗͯ͠΋ ෳ਺ ೖྗͯ͠΋ 1 ͭͱͯ͠Χ΢ϯτ͞Ε·͢ɻจষΛ్தͰվߦ͢Δ৔߹͸ TeX ιʔεϑΝΠϧͰ 1 ߦۭ͚·͢ɻ• 式番号は⾃動で振られる͜ΕͰվߦ͞Ε·͢ɻ2 ਺ࣜͷॻ͖ํ
2.1 ΠϯϥΠϯ਺ࣜϞʔυΠϯϥΠϯ਺ࣜϞʔυͱͯ͠จষதʹ਺ࣜΛೖΕΔ͜ͱ΋Ͱ͖·͢ɻf (x) = x ͳͲͱͰ͖·͢ɻ

2.2 σΟεϓϨΠ਺ࣜϞʔυσΟεϓϨΠ਺ࣜϞʔυͰ͸਺ࣜ༻ʹ 1 ߦ࢖ΘΕ·͢ɻf (x) = sin x͜ͷ৔߹͸ࣗಈతʹࣜ൪߸͕ৼΒΕ·͢ɻalign ‫ڥ؀‬ͷ͢΂ͯͷࣜͰࣜ൪߸͕͍Βͳ͍৔߹͸(1)

2 ਺ࣜͷॻ͖ํ
2.1 ΠϯϥΠϯ਺ࣜϞʔυ

数式での改⾏ΠϯϥΠϯ਺ࣜϞʔυͱͯ͠จষதʹ਺ࣜΛೖΕΔ͜ͱ΋Ͱ͖·͢ɻf (x) = x ͳͲͱͰ͖·͢ɻ

2.2 σΟεϓϨΠ਺ࣜϞʔυ• align環境では複数の数式を⼊れることができる。
• 縦位置を揃えるには & を使う(通常=のところで揃える)
f (x) = sin x• 改⾏は \\

σΟεϓϨΠ਺ࣜϞʔυͰ͸਺ࣜ༻ʹ 1 ߦ࢖ΘΕ·͢ɻ(1)͜ͷ৔߹͸ࣗಈతʹࣜ൪߸͕ৼΒΕ·͢ɻalign ‫ڥ؀‬ͷ͢΂ͯͷࣜͰࣜ൪߸͕͍Βͳ͍৔߹͸! ·A! = divA∇·A=∇·ͨ͸ͦͷߦͷΈࣜ൪߸͕͍Βͳ͍৔߹͸ nonumber ΋࢖͑·͢ɻ

p̂ =

改⾏
改⾏

! d
i dx

ෳ਺ߦͷ਺ࣜΛॻ͘͜ͱ΋Ͱ͖·͢ɻ
x

e =

∞
!
xn

=1+x+

x2
x3
+
+ ···
2
3!

n!
n=0
" ∞
F (x) =f " (x)g(x)dx0#$∞ " ∞= f (x)g(x)−f (x)g " (x)dx
0

0

(2)

(3)

数式モードで使える記号• インターネットに多くの情報があるので検索してください• よく使うものだけ掲載。
⼆項演算⼦

関係記号

表記

出⼒

表記

出⼒

\pm

±

\div

÷

\mp

(マイナスプ
ラス)

\cdot

・

\circ

○

\ast

*

\times

×

表記

出⼒

表記

出⼒

表記

出⼒

<

<

\in

∈

\ll

≪

>

>

\neq

≠

\gg

≫

\leq

≦

\sim

〜

\cong

~=

\geq

≧

\approx

~~

\perp

⊥

数式モードで使える記号
⽮印

括弧

表記

出⼒

表記

出⼒

\uparrow↑\leftrightarrow↔

\downarrow↓\rightarrow→\leftarrow

←

表記

出⼒

表記

出⼒

\langle〈\rangle〉⼤⽂字から始めると⼆重線になる

量⼦⼒学で出てくるブラ(bra)は \langle | 、ケット(ket)は | \rangle で表現
その他の記号

表記

出⼒

表記

出⼒

\hbar

hbar (プランク定数を2πで割ったもの)\infty∞\nabla∇\partial∂\primeʻ (上付きではない)\sumΣ(和の記号)

\int

∫

\prod

Π (積の記号)数式モードで使えるギリシャ⽂字\alpha

α

\iota

ι

\sigmaσ\Delta

Δ

\beta

β

\kappaκ\varsigma

ς\ThetaΘ\gammaγ\lambda

λ

\tau

τ

\LambdaΛ\deltaδ\muμ\upsilon

υ

\Xi

Ξ

\epsilon

ε

\nu

ν

\phi

φ

\Pi

Π

\varepsilo
n

ε

\xi

ξ

\varphiφ\Sigma

Σ

\zeta

ζ

\pi

π

\chi

χ

\Upsilon

Υ

\eta

η

\varpi

π

\psi

ψ

\Phi

Φ

\thetaθ\rhoρ

\omegaω\PsiΨ

\varthetaθ\varrhoρ\GammaΓ\OmegaΩ数式モードで使う⽂字のアクセント・数学関数など
x^axa\hat{x}xの上に^

x^{a+b}xa+b\bar{x}xの上に横線x_axa\frac{a}{b}a/b (分数)

x_{a+b}xa+b\sqrt{x}√x\vec{x}xベクトル\bm{x}

x

\log

log

\lim

lim

\sin

sin

\sinh

sinh

\cos

cos

\cosh

cosh

\tan

tan

\tanh

tanh

(i "= j)0

3 Օ৚ॻ͖

表の書き⽅

Օ৚ॻ͖Λ͢Δʹ͸ itemize ‫ڥ؀‬Λ࢖͍·͢ɻ

出⼒位置。h: texソースのその場所,
t: ページ上端, b: ページ下端, p：単独ページ• item Ͱ߲໨Λ‫ه‬ड़͠·͢ɻ• itemize ͷ୅ΘΓʹ enumerate ‫ڥ؀‬Λ࢖͏ͱ߲໨ʹ൪߸͕ৼΒΕ·͢ɻ• description ‫ڥ؀‬Λ࢖͏ͱ߲໨‫ݟ‬ग़͠Λ߲໨͝ͱʹมߋ͕ग़དྷ·͢ɻ

本⽂中で表を参照するときに使うラベルは
captionの中に記⼊する(出⼒されない)

4 ਤදͷૠೖ

ද͸ table ‫࡞Ͱڥ؀‬੒͠·͢ɻਤ͸ਤͷϑΝΠϧΛ
表の本体 eps ·ͨ͸ pdf ͳͲͰ༻ҙ͠ɺfigure ‫ڥ؀‬ɺͦͷதʹ

includegraphics ͰਤͷϑΝΠϧΛࢦఆ͠·͢ɻਤදͷҐஔ table ·ͨ͸ figure ͷ [htbp] ͷ͍ͣΕ͔Ͱࢦఆ͠·͢ɻh:ͦͷ৔ॴ t:ϖʔδ্෦, b:ϖʔδԼ෦,p:࣍ͷϖʔδʹ഑ஔ͞Ε·͕͢ɺTeX Ͱͷਤදͷ৔ॴͷௐ੔͸೉͍͠Ͱ͢ɻ
ද1දͷઆ໌Λ͜͜ʹॻ͖·͢ɻtable ‫ڥ؀‬ͷதͷ tabular ‫Ͱڥ؀‬දΛ࡞੒͠·͢ɻtabular ͷԣʹͷ c͸தԝଗ͑ɺl ͸ࠨଗ͑ɺr ͸ӈଗ͑ͷྻΛද͠·͢ɻྻ͸&Ͱ۠੾Γɺhline ͰԣઢΛҾ͖·͢ɻ෺ཧͰ͸දʹॎઢ͸௨ৗ࢖͍·ͤΜɻઆ໌͸ caption ʹ‫͠ࡌه‬ɺදͷ্ʹ഑ஔ͠·͢ɻ\begin{tabular}{ ... } に列数を書く。
↑の例の{clr}では3列、1列⽬は中央揃え、2列⽬は左揃え、3列⽬は右揃え。
通常は{ccc}や{rrr}などになる。

x

f (x)

g(x)

0.000

0.000

0.000

10.0

10.0

10.0

20

20

20

図の⼊れ⽅• 図を⽤意する(今の例ではsinxcosx.pdfファイルを使う)• プリアンブルでgraphicxパッケージを読み込む• 図はfigure環境で \includegraphics{図のファイル名}として呼び出す
図の表⽰位置

2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-15

sin(x)
cos(x)

-10

-5

0

5

10

15

x

ਤ1

ਤͷઆ໌Λ͜͜ʹॻ͖·͢ɻਤͷ caption ͸ਤͷԼଆʹ഑ஔ͠·͢ɻ• description ‫ڥ؀‬Λ࢖͏ͱ߲໨‫ݟ‬ग़͠Λ߲໨͝ͱʹมߋ͕ग़དྷ·͢ɻ4 ਤදͷૠೖ

参照ද͸ table ‫࡞Ͱڥ؀‬੒͠·͢ɻਤ͸ਤͷϑΝΠϧΛ eps ·ͨ͸ pdf ͳͲͰ༻ҙ͠ɺfigure ‫ڥ؀‬ɺͦͷதʹ

includegraphics ͰਤͷϑΝΠϧΛࢦఆ͠·͢ɻ“式(4)”のような式を指定する番号は、式の数を増やすと番号が変わるため本⽂中では番号を直接書かずਤදͷҐஔ table ·ͨ͸ figure ͷ [htbp] ͷ͍ͣΕ͔Ͱࢦఆ͠·͢ɻh:ͦͷ৔ॴ t:ϖʔδ্෦, b:ϖʔδԼ\ref{}によって指定する。
෦,p:࣍ͷϖʔδʹ഑ஔ͞Ε·͕͢ɺTeX Ͱͷਤදͷ৔ॴͷௐ੔͸೉͍͠Ͱ͢ɻ
ද 1 දͷઆ໌Λ͜͜ʹॻ͖·͢ɻtable ‫ڥ؀‬ͷதͷ tabular ‫Ͱڥ؀‬දΛ࡞੒͠·͢ɻtabular ͷԣʹͷ c͸தԝଗ͑ɺl ͸ࠨଗ͑ɺr ͸ӈଗ͑ͷྻΛද͠·͢ɻྻ͸&Ͱ۠੾Γɺhline ͰԣઢΛҾ͖·͢ɻ෺ཧͰ͸දʹॎઢ͸௨ৗ࢖͍·ͤΜɻઆ໌͸ caption ʹ‫͠ࡌه‬ɺදͷ্ʹ഑ஔ͠·͢ɻx&ͰॎҐஔΛଗ͑·͢ɻ

f (x)

g(x)

align環境の中にlabelを埋め込む(ラベルの名前は何でもよい)

0.000 0.000 0.000ߦྻ͸ pmatrix ͳͲΛ਺ࣜϞʔυͷதͰ࢖͍·͢ɻ͍͔ͭ͘ͷ‫͕ހׅ‬બ΂·͢ɻ
σx =!

" 10.0#10.0 $
0 1
0 −i
, σ =
,
1 0 20 yi 0
20

10.0 %
σz =

20

&
1 0
.
0 −1

(4)

৔߹෼͚͸ cases ͰՄೳͰ͢ɻ

δij =

5 ࢀর
3 Օ৚ॻ͖

'1 (i = j)
0 (i =" j)(5)

本⽂中で\ref{}としてこの式の番号を参照できる。

ࣜ΍ਤදͷ൪߸Λࢀর͢Δ͜ͱ͕Ͱ͖·͢ɻࣜ΍ਤද (ਤද͸ caption ͷத͕๬·͍͠) ʹద౰ͳ໊લͷϥՕ৚ॻ͖Λ͢Δʹ͸ itemize ‫ڥ؀‬Λ࢖͍·͢ɻϕϧΛஔ͖ɺจষதͰ 5 અɺࣜ (4)ɺද 1, ਤ 1 ͷΑ͏ʹ͢Δ͜ͱͰࢀরͰ͖·͢ɻࢀরΛߦ͏ʹ͸ 2 ճίϯ

x
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-15

x

sin(x)
cos(x)

2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-15

参考⽂献

sin(x)
cos(x)

参考⽂献は本⽂の最後のthebibliography環境に記述。このbibitemでつけた名前で本⽂中からciteすることで
-10
-5
0
5
10
15
-10
-5
0
5
10
15
x
参考⽂献の番号を表⽰できる。 xਤ 2 ෳ਺ͷਤΛషΓ෇͚Δ৔߹͸ tabular ‫ڥ؀‬Λ࢖͍·͢ɻ

LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.

⽂献の番号の桁数。2桁まで⾏きそうであれば{99}としておくͱදࣔ͞Εͨ৔߹͸΋͏Ұ౓ platex Λ࣮ߦ͠·͢ɻ(verbatim ‫Ͱڥ؀‬͸վߦͳͲ΋‫ؚ‬Ί‫ه‬ड़ͨ͠௨Γʹදࣔ͸ࢀߟจ‫ݙ‬σʔλϕʔε͔ΒҾ༻͞Εͨจ‫͚ͩݙ‬Λநग़Ͱ͖Δ BiBTeX Λ࢖͏ͱศརͰ͢ (BiBTeX ͷ࢖͍ํ͞Ε·͢)
͸লུ͠·͢)ɻ

6 ࢀߟจ‫ݙ‬ͷҾ༻෇࿥ A ෇࿥Λ෇͚Δ৔߹ࢀߟจ‫͕͋ݙ‬Δ৔߹ʹจষͷ్தͰ
cite ʹΑͬͯҾ༻ग़དྷ·͢[1]ɻͪ͜Β΋ࢀর৘ใ͕ aux ϑΝΠϧʹอ෇࿥Λ෇͚Δ৔߹͸
appendix ΑΓ΋Լʹ‫ه‬ड़͠·͢ɻଘ͞ΕΔͨΊ 2 ճίϯύΠϧΛߦ͍ͬͯͩ͘͞ɻෳ਺ͷจ‫ݙ‬Λ·ͱΊͯҾ༻͢Δ͜ͱ΋ग़དྷ·͢ [1, 2, 3]ɻࢀߟจ‫ݙ‬͸ຊจͷҰ൪Լʹ
thebibliography ‫ڥ؀‬Λஔ͖ɺbibitem ͰϦετ͠·͢ɻࢀߟจ‫͕ݙ‬ඇৗʹଟ͍৔߹ࢀߟจ‫ݙ‬[1] ‫ࢉܭ‬෺ཧֶ II त‫ࢿۀ‬ྉ
[2] ࡾ୐ӳ໌ɺେ֯༞հɺ ৽͍͠
3 Linux ͷ‫ڭ‬Պॻ (SB Creative)[3] ҏཧਖ਼෉ɺ౻໺࿨‫ݐ‬ɺ ਺஋‫ࢉܭ‬ͷৗࣝ (‫ཱڞ‬ग़൛)TeXのエラー• platexでコンパイルするときにエラーが出ることがある。(dvipdfmxでのエラーはほとんどなし)• align環境の中に空⾏があるとエラーになる。
• ⾒やすさの観点から空⾏を⼊れたい場合は %としてコメント⾏としておけばOK• 数式で{ }の左右の括弧の数が合わないとエラーが出る。
• ⼆重に上付き・下付きをするとエラーになる 例： x^a_b^c。 x^{ac}_bとする。
• ⻑い数式でエラーの場所がわからない場合はコメントアウトをしてエラーが出ない部分だけを表⽰し、少しずつ表⽰箇所を増やすことで、エラーの箇所を⾒つける。

エラーの例(align環境に空⾏がある)

中略←ここが33⾏⽬

このあたりでエラー？

line 33あたりでエラー
qまたはC-dで終了できる

カーソルのある場所の⾏数が表⽰される
エラーメッセージを⾒てエラーの場所を調べる

TeXのエラー• texファイルを修正したのにpdfファイルに変更が反映されない
platexの後、新しいdviファイルが作成されているか？
dvipdfmxで新しいpdfファイルが作成されているか？
エラーが出たため前に作ったファイルのままではないか？
pdfファイルはscpなどでもう⼀度転送したか？
pdfビューワーは開いたままではないか？
• 出てきた英語のメッセージをちゃんと読んでみる。ファイルが作られたと書いてあるか？
• ls ‒ltr オプションでファイルを更新時間の古い順に並べる。dviやpdfファイルの更新時間は正しいか？

dviやpdfファイルがtexファイルより古い場合はおかしいgnuplotgnuplot• グラフを作成するソフトウェア• 画⾯にグラフを表⽰・eps,pdfなどの形式のファイルに保存が可能• リモートから使う場合はファイルに保存を推奨• Windows/Macにインストールすることも可能(省略)• Linuxで図をpdfファイルとして出⼒する⽅法を解説• インタラクティブ(対話型)に使う⽅法とバッチ処理する⽅法があるgnuplotの使い⽅(インタラクティブ)• gnuplot コマンドで起動。gnuplotのプロンプトが表⽰される (gnuplot>)• ⼀⾏ずつgnuplotにコマンドを送る• ちょっと結果を確認するだけのグラフを書くだけならこちらが便利。

y=xをプロット終了

別windowに図が表⽰される

gnuplotの使い⽅(図をファイルに保存)• set term pdfcairo で出⼒形式をpdfにする• set output “ファイル名” で出⼒pdfファイル名を設定• プロットしたあとgnuplotを終了する

出⼒形式をpdfにする
出⼒ファイル名をx.pdfにする
y=xをプロット終了

pdfが作成されるgnuplotの使い⽅(バッチ処理)• ファイルにコマンドのリストを書いておき、gnuplot起動時にファイルを指定する。
• コマンドファイルはどんな名前でもよいが .pltや.gplなどの拡張⼦が使われることが多い• 論⽂・レポート⽤の図を作ったり⼤量の図を作る場合はこちらが便利

gnuplotにわたすコマンドのリストを書いたファイルをあらかじめ⽤意(最後のexitまたはquitは不要)
ファイルを引数にしてgnuplotを実⾏
エラーがなければ標準出⼒には何も表⽰されない
pdfファイルが作成される

gnuplotをインタラクティブに起動したあと load “plot.gpl”としても読み込むことができる。

図の表⽰
pdfを作成した場合はevinceなどで表⽰
リモートから作成した場合はローカルのコンピュータにpdfファイルをscpで転送してAdobe Readerなどで表⽰
TeXのfigure環境に貼り付けることもできる。
前のページで作った y=xのグラフ
10

x

5

0

-5

-10
-10

-5

0

5

10

gnuplotのコマンド

4

y=2x
y=2sin(x)フォントをArialでサイズを20に指定(デフォルトのサイズは少し⼩さい)
xやyの描画領域を変更
set .. の順番はplotより前であれば任意
x軸、y軸に名前をつける
凡例の位置を指定(leftまたはright, topまたはbottom)
図の枠の線幅を3倍に
2*xをy=2xという凡例、線幅3倍でプロット
2*sin(x)をy=2sin(x)という凡例、線幅2倍、破線(線を描く⻑さと描かない⻑さが10対10)でプロット
plotで複数の線をプロットするときはカンマで区切る
カンマの後の\は改⾏を表す。
(\のあとにスペースがあるとエラーになる)
改⾏しなければ続けて⼀⾏で書いてもよい。
plot → p linewidth → lw,
title → t, dashtype → dtなどの省略が可能

y

2
0
-2
-4
-10

-5

0
x

5

10

データのプロット• データのプロットが可能。(数値計算ではこちらをよく使う)• この授業の後半で⾏う数値計算で空⽩で区切られている数列あるデータを作成
このデータからグラフを作成できる• emacsでこのような数値が並んだファイルを作成してください。

データのプロット
このコマンドファイルでは複数のpdfファイルを順番に作成
1列⽬をx, 2列⽬をyとしてデータを点で描画しdata1.pdfに保存
1列⽬をx, 3列⽬をyとしてデータ点を線で結んで線を描画しdata2.pdfに保存
1列⽬をx, 4列⽬をyとしてデータを点で、データを結んだ線も描画しdata3.pdfに保存(データが図の端にあるのでこのままではちょっと⾒にくい)
using → u, with lines → w l, with points → w p,
with linespoints→ w lpなどと省略できる。
複数のデータを描画。3つ⽬はy軸に3列⽬と4列⽬の和を描画
1

5

100

data1.pdf

80data2.pdf

4

3

0.6

40

2

0.4

20

1

0.2

"data.txt" u 1:3"data.txt" u 1:4"data.txt" u 1:($3)+($4)

5

data3.pdf

0.8

60

6

"data.txt" using 1:4"data.txt" using 1:3"data.txt" using 1:2

data4.pdf

4

3

2

0

0
0

2

4

6

8

10

0

2

4

6

8

10

0

1

0

2

4

6

8

10

0

0

2

4

6

8

10

gnuplotのその他の機能• 組み込み関数• sin, cos, tan, exp, log, asin, acos, atan, absなどが使⽤可能• 累乗は ** (x2は x**2)• すでに設定されたxrangeなどの設定を消去する場合は• set xrange[*:*] とする(描画領域は次のデータに⾃動で合わせる)• 対数⽬盛• set logscale y y軸を対数⽬盛にする• unset logscale y 元に戻す。
• 図中に⽂字を書き込む(set label), ⽬盛りの細かい設定(set xtics/ytics)、⼀つのpdfファ
イルに複数の図を⼊れる(multiplot)、3Dプロット(splot)など⾊々可能。
• インターネットで調べてください。

第４回課題• manabaで提出(提出任意・成績には反映しません)1.

次の式(ビオ・サバールの法則)をtexで書くとき、\begin{align}と\end{align}の間にどのように書けばよいですか。
ベクトル量(B,J, x, xʼ)は太字です。
manabaで提出する前にtexでコンパイルして確認してください。

第４回課題
2. y=sin(x)とそのx=0でのテーラー展開の1次, 3次, 5次多項式の図を-10<x<10、-10<y<10の範囲でグラフにしてください。
(Wikipedia テーラー展開の項⽬に13次までの図があります)
pdfにした図を提出してください。

シェルスクリプトの基本

ファイルの詳細情報を表⽰(ls)• ls ‒l オプションでファイルの詳細情報を表⽰

ファイルのパーミッション

ファイルの所有者 ファイルのサイズ

最終更新⽇時-t オプション 最終更新⽇時の順番で表⽰(新しいファイルから順番に表⽰)-S オプション ファイルサイズの順番で表⽰(⼤きいファイルから順)-h オプション ファイルのサイズをバイト、キロバイト、メガバイトなどで表⽰-r オプション 並び⽅を逆順にする

ファイルとパーミッション
ファイルのパーミッション

1⽂字⽬はファイルタイプ：d ディレクトリ、 l シンボリックリンク
次の9⽂字は3⽂字ずつに分けて、それぞれ 所有者、グループ、その他のユーザに対するパーミッション
r: 読み込み可能(readable)、w: 書き込み可能(writable)、x: 実⾏可能(executable)

ファイルを表⽰・ディレクトリの中を表⽰するためには読み込み可能である必要があります。
ファイルを編集・ディレクトリの中のファイルの操作には書き込み可能である必要があります。
ディレクトリに移動する、またプログラムは実⾏可能である必要があります。
通常パーミッションは正しく設定されており気にする必要はありませんが、⾃分で作成したスクリプトは実⾏権限を持っていないためパーミッションの変更の必要があります。

シェルスクリプト• シェルスクリプトとは• 複数のコマンドをファイルに書いておき、ファイルを実⾏するとそのコマンドを順番に実⾏する。
• 同じコマンドを何度も⼊⼒する⼿間が省ける。
• 複雑な分岐、ループなども可能。(詳細は省略)
emacsでシェルスクリプトを作成してみる。以下の例では list.sh というファイルを作成し、⼀⾏⽬に #!/bin/bash (これはbashのシェルスクリプトであるということを指定)下に実⾏したいコマンドを書く

ファイルのパーミッション変更(chmod)
シェルスクリプトファイルは登録されたコマンドではないのでファイル名だけでは実⾏できず、パスを明⽰的に指定する必要がある。
カレントディレクトリにあるので ./ をつけることで カレントディレクトリにあるlist.shファイルを実⾏する、となる。
シェルスクリプトを実⾏するにはあらかじめ実⾏権限を与える必要がある(chmodコマンド)
これだと登録されているコマンドのリストを探しに⾏ってしまう
カレントディレクトリにあるlist.shを実⾏する、という意味になる
ファイルに実⾏権限がないので実⾏出来ない
所有者に実⾏権限を付与

シェルスクリプトに書かれた
ls ‒l が実⾏されるchmodコマンド• ファイルのパーミッションを変更する
chmod u+x ファイル名： ユーザ(u)に実⾏権限(x)を付与
chmod ug+rw ファイル名：ユーザとグループ(g)に読み込み(r)、書き込み(w)権限を付与
chmod o-x ファイル名： その他(o)から実⾏権限(x)を剥奪
または r=4, w=2, x=1 の数字を使って⼀発で指定することも可能
chmod 777 ファイル名
chmod 755 ファイル名
chmod 644 ファイル名：：：

777 は rwxrwxrwx
755 は rwxr-xr-x
644 は rw-r̶r--(r+w+x=7)(r+x=5)(r+w=6)

必要がない限りグループやその他には実⾏権限や書き込み権限は与えない⽅がよい。
(セキュリティ上の問題が起こりうるため)
シェルスクリプトを実⾏するには所有者に実⾏権限が必要であるため
chmod u+xとするか、もともと644で作られているため 744または755に変更するログイン時の動作(発展内容)• bashではログイン時にシェルスクリプトが実⾏されており初期設定が可能• ログイン時： ~/.bash_profile が実⾏される。(ドットから始まるファイルは隠しファイル)• ~/.bash_profileには通常 ~/.bashrcの内容を実⾏するように書かれているため続いて.bashrcの中⾝が実⾏される。
• ユーザ側で設定を変えたい場合は慣習的に.bashrcに記述する• .bash_profileと .bashrcの内容をcat/lessで⾒てみましょう。
• .bashrcで通常設定するのは環境変数とエイリアスの設定

環境変数の例(発展内容)• PATH：コマンドが格納されている絶対パスを登録•

PS1: シェルのプロンプトの表⽰形式を指定•

SHELL: ログイン時に起動するシェルを指定• HOME: ホームディレクトリの絶対パスを格納

echoコマンド：シェル変数の値を表⽰。(シェル変数は$から始まる)⽂字列を渡した場合は⽂字列をそのまま表⽰←⽂字列Helloの場合

エイリアス(発展内容)
alias エイリアス名=ʻコマンドʻ
コマンドに別名をつけることができる。 .bashrcに設定しておくとログイン時に⾃動で読み込まれるため常に使⽤可能
よく使われる設定例

lsと打ったときに ‒FGオプションが⾃動でつくように設定間違えてslと打ったときもlsが実⾏されるように設定
ls ‒l を ll として設定
ls ‒aを la として設定

これらのエイリアスは既定で設定されている場合もあり、
これまでに使ったlsはエイリアスだった可能性もある。
lsのプログラムの本体は/bin/lsにあるので、これを直接実⾏したときと上のエイリアスが設定されている場合はls ‒FGが実⾏されるため挙動を⽐べてみましょう。
ディレクトリに/、シンボリックリンクに@が表⽰される

絶対パスでコマンドを指定。 ディレクトリに/が表⽰されないエイリアス(発展内容)
よく使われる設定例

すでに設定されている可能性があります。
-iオプションは削除、上書きするときに確認メッセージを出⼒
エイリアスが設定されている場合は-iオプション

直接実⾏すると確認なしで上書き・削除が実⾏される(注意してください)typeとwhich (発展内容)
type コマンド名
which コマンド名：コマンドがエイリアスか、ビルトインか、PATHに登録されているかを⽰す：コマンドの絶対パスを表⽰

PATHで登録されているか、ビルトインか、
エイリアスかを表⽰

絶対パスが表⽰される
ビルトインコマンドではパスが表⽰されない• コマンドが存在するはずなのにwhichでコマンドが⾒つからないとき→PATHにコマンドのディレクトリが登録されていない(PATHが通っていない)• PATHの内容は変更可能。通常は.bashrcで設定。ソフトウェアインストール時などに⾏う。
(⽅法は⾃分で調べてください。ただし適切に設定しないとよく使うコマンドが⾒つからなくなるので注意)シェルでのコマンド処理の流れ(発展内容)• シェルで⽂字列を⼊⼒(例：cat test.txt など)• シェルは空⽩で区切られた1単語⽬(例の場合はcat)をコマンドと認識(相対パス・絶対パ
スの場合はそのまま実⾏)• 1. エイリアスが登録されているかチェック• 2. ビルトインコマンド(history, echoなど)かチェック• 3. 環境変数PATHに登録されているディレクトリにコマンドを探しに⾏く
ディレクトリを順番に探し、はじめに⾒つかったコマンドを実⾏• コマンドがなければエラーメッセージ「コマンドが⾒つかりません」(Command Not
Found)を標準出⼒に出⼒