忍者ブログ
Yaleで、遊んで学ぶ日々。

Yaleで、遊んで学ぶ日々。

囲碁、ときどきプログラミング、ところにより経済。
[47]  [48]  [49]  [50]  [51]  [52]  [53]  [54]  [55]  [56]  [57
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

炊飯器のスイッチ入れ忘れてたorz


ぐ~。


http://www.megavideo.com/?v=EHA52UDX




PR
Tex関連の記事が続いているけど、今回は以前の記事で触れた、metapostの話の続きだ。
フォントインストールなどの際に、latexを一式入れ替えた(『美文書』のCDのものからあべのりのインストーラによるものへ)のだけど、その後metapost関連のファイル構成が違っていることに気づいた。
まず第1に、jmpostがない。コマンドが認識されていないので、ソフトそのものが入っていないんだろうと思う。それから、以前の記事に書いた、数式の入った図をmpostを使って書く方法が機能しなくなった。

例えば、

verbatimtex
%&latex
\documentclass{article}
\begin{document}
etex;
beginfig(1);
u=1cm;
drawarrow (-.5u,0)--(4u,0);
drawarrow (0,-.5u)--(0,2u);
pickup pencircle scaled 1pt;
draw (0,0){up}
for i=1 upto 8: ..(i/2,sqrt(i/2))*u endfor;
label.lrt(btex $\sqrt{x}$ etex, (3,sqrt(3))*u);
label.rt(btex $x$ etex, (4,0)*u);
label.top(btex $y$ etex, (0,2)*u);
label.llft(btex O etex, (0,0));
endfig;
end.

というようなコードを書いて test.mpに保存してmpost にかけると(コマンド mpost test)、次のようなエラーが出るようだ。

>> test.mpx
! Unable to make mpx file.
l.13 label.lrt(btex
                    $\sqrt{x}$ etex, (3,sqrt(3))*u);
The two files given above are one of your source files
and an auxiliary file I need to read to find out what your
btex..etex blocks mean. If you don't know why I had trouble,
try running it manually through MPtoTeX, TeX, and DVItoMP

この数式を書いている部分(btex ~ etex)で何か良くないことが起こっているみたいだ。


どうにもならないので色々検索していたら、色んな情報が見つかった。ちなみにこういうときはエラーメッセージ(大抵LOGファイルに出力されている)でGoogle検索をすると良い。その中で、こんなページを発見。

そこで紹介されていたコードを見ると、

prologues:=3;
beginfig(0);
  h=30;
  w=100;
  r=70;
  d=5;
  draw (0, h)--(2w, h);
  draw (w, 0)--(w, h+w);
  dotlabel.rt(btex ${\rm i}c$ etex, (w, h+40));
  pickup pencircle scaled 2pt;
  draw (w-r, h)--(w+r, h)..(w, h+r)..cycle;
  draw (w+h, h+0.7d)--(w+h+d,h)--(w+h, h-0.7d);
endfig;
end.

となっている。美文書の方では数式を出すためには必要とされていた、
verbatimtex
  \documentclass{article}
  \begin{document}
  etex;
という部分が丸ごと抜けているわけだ。こんなんで上手くいくのかと思いつつも試しにこのコードでmpostをかけてみたところ、成功した。数式も綺麗に表示されている。理由は分からないけど、これで一応問題は解決した。色々な数式を試してみたところ、大抵のものはOKだった。だけど、なぜか分数 \frac{}{} だけうまく行かなかった。まぁ分数は 1/2 みたいにかけるので実質的な問題はない。


先日書いた、latexにGaramondフォントを導入する方法に、若干抜けている部分があったので補足(→その記事)。latexのファイル構造をすっきりさせる目的で一度インストールしなおしたところ、その記事に書いてある手順だけでは不十分だということに気づいた。mathdesign-garamondのdocumentationにも書いてあるとおり、urw-garamondというフォントが入っていないと機能しないらしい。本当、知れば知るほど謎が増える。urw-garamondの導入方法はここに書いてあった。Garamond導入の方法を色々探している過程で、mathdesignに行き着くより先にurw-garamondの導入はしてあったので、これが必要条件だったとは気づかなかった。

【urw-garamondのインストール】
(1) パッケージのDL: CTANから。
(2) 解凍し、その中で拡張子が .afmのファイルを全て TEXMF\fonts\afm\urw\garamond へ移動(TEXMFはtexのルート。普通は \texmfフォルダか、 \texmf-localフォルダ)。普通はgaramondというフォルダはないので作る。
(3) 同様に、拡張子が .pfbのファイルを全て TEXMF\fonts\type1\urw\garamondへ移動(修正:pfm -> pfb, 03/10/2010)。
(4) ugm.zipを \texmf に展開する。注: ugm.zipを展開すると、ugmというフォルダが出来て、その中にdoc, dvips, tex, fonts というフォルダが入っている。この4フォルダを\texmf に移動する。すると、 TEXMFのなかにはもともと同じ名前のフォルダがあるので、上書き確認のメッセージボックスが出るので、全てOKする。実際にはdoc等の中に新しいフォルダを加える作業だから、ファイルの上書きはされない。
(5) コマンドプロンプトで、
       updmap -add ugm.map
 のコマンドを実行。一応、
      mktexlsr
もしておいたほうが良いのかも(たぶん不要?)。
以上。

【mathdesign-urw-garamondのインストール(以前の記事と同じ内容)】
(1) mdcore.zip をDL: CTANから。これをTEXMFに展開。上書き確認を全てOK.
(2) mdugm.zipをDL: CTANから。これをTEXMFに展開。上書き確認を全てOK.
(3) コマンドプロンプトで
     mktexlsr
(4) コマンドプロンプトで
     updmap -add mdugm.map
以上。

mathdesign には3種類のフォントが用意されている。MD-urw-garamond, MD-adobe-utopia, MD-bistream-charter (MDはmathdesignの略)。Garamond以外をインストールするには、"mdugm" の部分を "mdbch", "mdput" に読み替えてやればよい。
使用方法は、プリアンブルに下記のいずれか使いたいものを入れる。
  \usepackage[adobe-utopia]{mathdesign}
  \usepackage[urw-garamond]{mathdesign}
  \usepackage[adobe-utopia]{mathdesign}

MDシリーズはそれぞれ既存のフォントに良く合う数式フォントっていうことらしい。そのため該当する既存のフォントの存在が導入の条件になる(ということだと思うのだが)。MD-urw-garamondの場合は、urw-garamondを別途自分で導入する必要があったけど、他の2つについては、最近の標準インストールに含まれているケースが多いので自分で用意する必要がないことが多いらしい(あべのりのぺーじにあるインストーラで導入した場合はOKだった)。


今後も次第に新しいパッケージを導入することになるかもしれないけど、latex導入時にもともと入っていた分と自分でインストールした分を区別するために、自分で加える分は全て \texmf-local の方に入れることにした。そうすれば、基本的にはtexmf-local以下を消せばもとのまっさらな状態に戻る(はず。すでに作られてしまったフォントとかは残ったりもするのだろうけど)。さらに、インストール用のバッチファイルを残しておけば復元も可能。現在、そのバッチファイルは、mathdesignフォント、paper.sty (ちょっとカッコいいdocumentclass)、yalephd.cls(Yaleの博士論文用のdocumentclass)をインストールするようになっている。先ほど動作確認が完了した。
昨日インストールしたlatex用のフォントやパッケージのインストールプロセスを自動化するバッチファイルを書いた。PCを買い換えたり、latexをまるごと入れなおしたいときなどに使う予定。これからもインストールするパッケージの数は増えていきそうだから、随時更新していく予定。そうすると、インストール手順のメモ代わりにもなる。

バッチファイルの仕組みも大分わかるようになってきた。
if ... goto バグの恐怖を味わった。
普通プログラミングの授業とかでは、if ... goto という条件分岐の書き方は発見しにくいバグを生みやすいから避けるように教えられるけど、バッチファイルでは結構使われるらしい。甘く見ていたら、同じ命令が二度繰り返されるバグが発生して発見に時間を食った。つまり、

...
...
if A goto B

...
...

:B
   ...
   ...
exit /b

っていう感じのプログラムで、これだと Bの作業は2回繰り返されてしまう。避けるためには、


...
...
if A goto B

...
...
exit /b    :: <- これ

:B
   ...
   ...
exit /b

という風に、2度目のBの前にexit /b を入れて、そこでプログラムを終わらせてしまえばいい。

注:この記事の内容に一部不十分な点があった。こちらの記事も参照。

Latexは便利だけど、フォントの種類がはじめは限られていて(Computer Modern, Times, Platino)で、追加する方法が難しくて今まで手を出せなかった。MS Wordなら、はじめから大量のフォントが入っているし、DLして追加するのも難しくない。のだめがみそ字フォントで千秋のパソコンにいたずらできるくらい簡単だ。

今日、思い立ってGaramondフォントをtexに導入することに決めた(Windowsの方に。Ubuntuの方はまた今度。すぐできると思う)。
まず、フォントをDLする時の最大の問題は、DLした後に、マップファイルなるものを作成しなくてはいけないらしく、それをするのがupdmap.exeというソフトらしい。何が問題かというと、このupdmapが奥村晴彦の『美文書作成入門』の標準インストールに含まれていないことだ。試していないが、単純にupdmap.exeというのを探してきても駄目らしい。まとめてtex一式をDLし直すのが第一選択だ。

まず、updmapが入っているかを確認する。コマンドプロンプトを開いて
  updmap
とコマンドを打ち込んでみる。「認識されていません」みたいに言われたら、それはupdmapというソフトがないということで、DLしてこないといけない。ちなみにupdmapが存在するなら、working....というような、何かしらが行われているようなメッセージが出る。

updmapがない場合、このあべのりページというところにインストーラがあるので、これをDL・解凍・実行する。『美文書』でDLしたtexのためのフォルダ(C:\usr 以下)は消しておく。あと、それ用のPath(C:\usr\local\bin;)も消しておくといい。怖かったら触らないのも手。このインストーラはGSView, Ghostscript, dvioutなども合わせてインストールするのだけど、それは失敗した。理由は分からない。古いのでも問題なく動いたからとりあえず放置することにした。

さて、この結果、デフォルトでは C:\tex 以下にtex用のフォルダが作られているはず。Pathは勝手に通しておいてくれる(システム環境変数のPathにC:\tex\bin;が追加されている)。まずは普通に動くかどうか実験しておく。以前に書いたtexのコードをwinshellを使ってコンパイルする。回った。続いてdvioutで表示。ここで1回止まった。何かフォントの場所の設定が出来ていないためらしい。古いdvioutが今までとおりの場所にフォントを探しに行ったところ、すでに削除済みで困った、ということのよう。dvioutの設定画面が始まるので、適切に設定する。おそらくresolutionはそのままでいいと思うから、Nextをクリック。次は、Fontというところだけど、とりあえずGuessで試してみる。僕の場合は全然間違ったディレクトリをguessしてた。TEXROOTには
C:\tex\share\texmf\fonts
を入力する(デフォルトの場合)。基本的には、『美文書』の付録Gに書いてあるとおりいいが、ただし
  C:\usr\local....
というようなパスは
  C:\tex...
に変える必要がある(tex用ディレクトリの場所がちょっと変わったので)。

ここまでで、普通のtex環境はもとに戻ったはず。そのことを実験で確認したら、今度はupdmapがちゃんと入っているかを確認する。もう1度、コマンドプロンプトを開いて
  updmap
を入力してみる。ソフトの存在を確認したら、とりあえず第1歩はクリア。


次はGaramondフォントをDLする。まずは、CTANのページへいく。ちょっと下へスクロールするとREADMEがあるので、それをまずはDLする。手順はそこにすべて書いてある。以下はその内容をかいつまんで説明する。

(1) 同じページから、mdcore.zip をDL。とりあえずデスクトップにでも解凍してみる。するとdocとtexという2つのフォルダが出てくるはずなので、それらを C:\tex\share\texmf に移動。このディレクトリにはすでに同名のフォルダがあるので上書き確認をされるが、問題ないので上書きOKにする(既存の中身に付け加えるだけなので、実際はファイルは上書きされない)。これは、mathdesignシリーズ全体(3種類ある)に共通するコアファイルというやつらしい。

(2) 次に、上の方にあるmathdesign-garamondという部分をクリックして移動。Location on CTANというところにzipファイルへのリンクがあるので、それをクリックして mdugm.zip をDL。同じように解凍するとdoc, dvips, fonts, tex の4つのフォルダが出てくるので、それらをやはりC:\tex\share\texmf に移動、上書きOK. これがgaramondのパッケージ。 解凍時に同じ名前のフォルダが出てくるので、どっちのzipからのフォルダなのか混乱しないように注意。

(3) コマンドプロンプトを開いて、
mktexlsr
のコマンドを入力。READMEによると、
texconfig rehash
の場合もあるらしい。入ってないコマンドだった。OS違いだろうか。機能としては、texmfの状態を再確認する作業らしい。

(4) C:\tex\share\texmf\web2c\updmap.cfg というファイルをテキストエディタで開いて、末尾に
       Map mdput.map
       Map mdugm.map
       Map mdbch.map
と書き足して保存。その後、コマンドプロンプトで
  updmap
のコマンドを実行。
おしまい。

使い方としては、プリアンブルにこれを足せばいいみたい。
\usepackage[urw-garamond]{mathdesign}


こういうテスト用のtexコードを書いて、動作確認をしてみよう。

\documentclass{article}
\usepackage[urw-garamond]{mathdesign}
\begin{document}
This is {\it mathdesign}!
\[ y = x^2 \Longrightarrow x = \pm \sqrt{y}\]
\end{document}



Calender
12 2025/01 02
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Search in This Blog
Latest Comments
[03/30 川内のばば山田]
[03/30 川内のばば山田]
[08/06 Aterarie]
[07/05 Agazoger]
[07/01 Thomaskina]
Oldest Posts
Latest Trackbacks
フリーエリア

Barcode
Access Analysis
Powerd by NINJAブログ / Designed by SUSH
Copyright © Yaleで、遊んで学ぶ日々。 All Rights Reserved.
忍者ブログ [PR]