4月 4, 2009 - コンピューター    TeXのfloatパッケージ利用 はコメントを受け付けていません

TeXのfloatパッケージ利用

 floatパッケージを使って[H]指定すると、好きな位置に図を出せる(これを使わないとTeXが適当に図を配置するので、図や表が多い場合には最後にまとめられてしまったりする)。

 普通にfloatパッケージを使う場合の定番の定義。

¥usepackage{float}

¥restylefloat{figure}
¥restylefloat{table}

 これをやっておくと、floatの位置指定で強制的にここ[H]が使えるようになる。

 floatはそのままだと通し番号だが、これを、「章の番号.図の番号」に変えるには、

¥renewcommand{¥thefigure}{%
¥thechapter.¥arabic{figure}}
¥renewcommand{¥thetable}{%
¥thechapter.¥arabic{table}}

とやっておいて、章が変わるごとにリセット

¥makeatletter
¥@addtoreset{figure}{chapter}
¥@addtoreset{table}{chapter}
¥makeatother

をしておく。

 jarticleなどの日本語環境だと、キャプションは「Fig.」ではなく「図」になる。これを「Fig.」で出るようにするには、

¥def¥figurename{Fig.}
¥def¥tablename{Table.}

と書く。

 ただ、floatパッケージを使うと、ものの本にあるように、キャプションをフロートの内容より先に書けば上、後に書けば下、といった感じに切り替わらず、常に下に出るようになってしまう。
 これを避けるには、新たなfloat環境を次のように定義する。
 以下ソース。

¥documentclass[a4j]{jarticle}

¥usepackage{float}
¥usepackage{epsfig}

%コンパイルの時は、何でもいいからtest.epsという図を1つ作ってソースと同じディレクトリに置いておくこと。

%出力指定は強制的にここ[H]、リスト作成のための補助ファイル出力は拡張子lot、フロートの番号付けの範囲はSectionごと。キャプションは上。¥newfloatの最初の引数が新規定義されたフロート名前で、キャプションを付けると、定義されたフロートの名前と番号が表示される。
¥floatstyle{plaintop}
¥newfloat{Table}{H}{lot}[section]

%出力指定は強制的にここ[H]、リスト作成のための補助ファイル出力は拡張子lof、フロートの番号付けの範囲はSectionごと。キャプションは下。

¥floatstyle{plain}
¥newfloat{Figure}{H}{lof}[section]

¥begin{document}

%¥listof{フロートの名前}{リスト一覧のタイトル}で、図目次や表目次が出る。
¥listof{Table}{表一覧}
¥listof{Figure}{図一覧}

¥section{テスト}

¥begin{Table}
¥caption{表のテストその1}
¥label{表のテストその1}
¥begin{center}
¥begin{tabular}{clc}
¥hline ¥hline
項目1 & 項目2 ¥¥
¥hline
値1 & 値2 ¥¥
¥hline ¥hline
¥end{tabular}
¥end{center}
¥end{Table}

¥begin{Figure}
¥begin{center}
¥epsfig{file=test.eps}
¥caption{図のテストその1}
¥label{図のテストその1}
¥end{center}
¥end{Figure}

¥section{セクション変えのテスト}

¥begin{Table}
¥caption{表のテストその2}
¥label{表のテストその2}
¥begin{center}
¥begin{tabular}{clc}
¥hline ¥hline
項目1 & 項目2 ¥¥
¥hline
値1 & 値2 ¥¥
¥hline ¥hline
¥end{tabular}
¥end{center}
¥end{Table}

¥begin{Figure}
¥begin{center}
¥epsfig{file=test.eps}
¥caption{図のテストその2}
¥label{図のテストその2}
¥end{center}
¥end{Figure}

参照テスト。

表¥ref{表のテストその1}、表¥ref{表のテストその2}、図¥ref{図のテストその1}、図¥ref{図のテストその2}、とも、セクション毎に番号が振られ、表のキャプションは上、図のキャプションは下に出る。

¥end{document}

 floatパッケージを使った状態でのキャプションのインデントは、たとえばこんなふうに書く。

%float.styを使った場合のキャプションのインデント
¥makeatletter
¥renewcommand¥floatc@plain[2]{
¥vskip 5¥p@
¥setbox¥@tempboxa¥hbox{{¥bf #1}¥ ¥ }%
¥@tempdima¥hsize¥advance¥@tempdima-¥wd¥@tempboxa
¥setbox¥@tempboxa¥hbox{{¥bf #1 }¥ ¥ #2}
¥ifdim ¥wd¥@tempboxa <¥hsize
¥hfil {¥bf#1}¥ ¥ #2¥hfil¥par
¥else
¥hbox to¥hsize{¥hfil {¥bf #1}¥ ¥ ¥parbox[t]¥@tempdima{#2}¥hfil}%
¥fi}
¥makeatother

4月 4, 2009 - コンピューター    0章から始めたいとか、アブストラクトだけページ打ちを変えたいとか はコメントを受け付けていません

0章から始めたいとか、アブストラクトだけページ打ちを変えたいとか

 学位論文でやった小技のあれこれ。¥begin{document}してから、表紙を適当に書いた後に置いた内容。

%——————————————————
¥newpage
 
¥setcounter{page}{0}
¥thispagestyle{empty}

¥newpage
%——————————————————
%論文要旨
%要旨本文を予備審査書類と共通にするため、要旨のヘッダはここに書く。
¥chapter*{Abstract}
¥pagenumbering{roman}
¥addcontentsline{toc}{chapter}{Abstract}
¥pagestyle{fancy}

¥input{abstract} %%pdf OK

¥chapter*{論文要旨}
¥addcontentsline{toc}{chapter}{論文要旨}

¥input{要旨} %%pdf OK

%目次————————————————–
%subsubsectionまで目次に出す
¥setcounter{tocdepth}{3}
¥tableofcontents
¥listoffigures
¥listoftables
%——————————————————–
¥setcounter{chapter}{-1} %—–0章から開始

¥input{緒言}

 jreportだと、何もしなくても数式番号は章ごとにリセットされて、(1.1)(1.2)のようになる。しかし、0章から始める、などという変則的なことをするとうまくいかなくなるので、

¥makeatletter
  ¥renewcommand{¥theequation}{¥thechapter.¥arabic{equation}}
  ¥@addtoreset{equation}{chapter}
¥makeatother

と定義しなおしておく。

 さらに、章が0から始まるなら節も0からじゃないとおかしいよね、ということで、各章の始めに、

¥chapter{章のタイトル}
¥setcounter{section}{-1}%—–セクションも0から開始
¥setcounter{subsection}{-1}%—–サブセクションも0から開始
¥setcounter{subsubsection}{-1}%—–サブサブセクションも0から開始

と書いておく。

4月 4, 2009 - コンピューター    チャプターヘッドの変更 はコメントを受け付けていません

チャプターヘッドの変更

 チャプターヘッドの変更。本文でどう定義していいかわからなかったので、jrepot.clsをコピーしてきて、myreport.clsとか名前を変えて、makechapterheadしているところを

¥def¥@makechapterhead#1{%
¥setbox0=¥hbox{
    ¥ifnum ¥c@secnumdepth >¥m@ne
    ¥if¥@chapapp%
        ¥LARGE¥bf ¥@chapapp¥thechapter %
    ¥else
        ¥LARGE¥bf ¥@chapapp{}¥thechapter¥@chappos{}¥fi
    ¥fi}
¥vbox to7¥normalbaselineskip{%
¥hsize=¥textwidth
¥vfill
¥hbox to¥hsize{
    ¥copy0¥hrulefill}
¥vskip.5
¥normalbaselineskip
¥setlength¥@tempdima{¥textwidth}%
¥setbox¥z@¥hbox{¥LARGE¥bf ¥@chapapp¥thechapter¥@chappos¥hskip1zw}%
¥addtolength¥@tempdima{-¥wd¥z@}%「第*章」の長さだけ減らす
¥hsize=¥@tempdima%代入しないと参照できない。
%¥vtop{¥hsize¥@tempdima ¥Huge¥bf #1}%章タイトル出力
¥hbox to¥textwidth{
¥phantom{copy0}
¥vtop{¥hsize¥@tempdima ¥Huge¥bf #1}
}
¥vfill
¥vskip¥normalbaselineskip
}¥par}

 これで、

第1章_________________
    第1章のタイトル

みたいな感じで出力される。

4月 4, 2009 -    Theory of Electric Polarization はコメントを受け付けていません

Theory of Electric Polarization

 Carl Johan Friedrich BoettcherのTheory of Electric Polarization (vol 1, vol2)は、amazon.comでも品切れで、マーケットプレイスにも出品無し。どうやらここ数年、本当に入手が困難らしい。

 1990年頃、TDRをやることになって、東大の図書館で借りてコピーした。その頃は、神田の、三省堂の左隣あたりの古本屋(名前失念)に、Elsevierから出ていたものが2冊あったが、1巻が2万円超、2巻が3万円超で、貧乏院生には手が出せなかった。
 その後、博士課程で再びTDRをやることなり、思い切って買うことにした。ネット書店で注文したら、円高で多少は安くなるかと思ったけど、日本円でやっぱり2冊セットで5万円ほどの値段になった。届いた本は、Elsevierとは書いてなくて、装丁も多少違っていた。多分、版権を別の本屋に売ったのだと思われる。

 amazon.comではElsevierのものがいくつか出るがどれも入手不可能。さすがに、値段が高いのと買う人が少ないのがネックになったのか。Dover版でも出せば、安くなることもあり、地道に売れると思うが……。

 参考文献として、教育用に引用するときは、入手困難だということも伝えておかないといけないようだ。

4月 3, 2009 - コンピューター    pplogpのカウンターの問題 はコメントを受け付けていません

pplogpのカウンターの問題

 そもそもカウンターが動かない。
 なぜかこのメモlogのカウンターが、昨日1、今日1、トータル表示されずのまま。調べてみたら、pplogp/mainlog/counterの下にあるはずの”X.php”(Xはblogの番号)が存在しなかった。既に動いているファイルの内容をコピーして作り、

トータル<>昨日<>今日<>2009/04/03(今日の日付)<><>

となるようにして保存。数字は1、1、1とかにしておく。適切にchownすること。これで様子を見る。

 カウンターがすっ飛んだ場合は、上記のような内容に書き換えることで、飛ぶ前の値に復旧させることができる。

4月 3, 2009 - コンピューター    トラックバックのテスト用 はコメントを受け付けていません

トラックバックのテスト用

向こうを「対策無し」に設定してから打ってみるとかいろいろ。

やってみたらうまくいった。

4月 3, 2009 - コンピューター    TeXの個人用設定 はコメントを受け付けていません

TeXの個人用設定

 良く使用するパッケージなど。

¥usepackage{epsfig}
¥usepackage{fancyhdr}
¥usepackage{float}
¥usepackage{cite}
¥usepackage{dectab}
¥usepackage{MATHCHM2}
¥usepackage{subfigure}
¥usepackage{subeqnarray}
¥usepackage{afterpage}
¥usepackage{amssymb}
¥usepackage{figmn}
¥usepackage{euscript}
¥usepackage{linequote}

 epsfigとfloatは大抵の場合必須。
figmnは1ページに図を並べて埋めるのに必要。

4月 3, 2009 -    ChuのLaser Light Scattering はコメントを受け付けていません

ChuのLaser Light Scattering

 BENJAMIN CHUの”Laser Light Scattering” (Academic Press)は、レイリーブリルアン散乱や光散乱をやる場合の基本的な必読文献の1つである。
 Second Edition(ISBN 0-12-174551-1)が最新版(とはいっても、1991年だからだいぶ前)だが、レイリーブリルアン散乱の式の導出が一部省略されている。導出を全部読んで追っかけるには、初版(ISBN 0-12-174550-3)の方を入手する必要がある。最新版を読めばいいだろうと思っていると、より基本的な式の記述が貧弱になっているので注意。

 なお、この分野の教科書としては、CHUの本と、Berne&Pecoraの”Dynamic Light Scattering”が定番である(こちらはDover版が出ている)。

4月 2, 2009 - コンピューター    一定時間後に別URLに飛ばす はコメントを受け付けていません

一定時間後に別URLに飛ばす

 htmlファイルに

"http://www.w3.org/TR/html4/frameset.dtd">




ページタイトル

のように書いておく。このページを表示すると、自動で「飛ばしたいURL」を見に行く。URL直前の数字は、飛ぶまでの秒数である。

「○秒後に自動でジャンプします」といった内容はbodyのところに書く。メッセージが長くて待ち時間が短いと、速読の訓練みたいになるけど。” name=”{no}_o「○秒後に自動でジャンプします」といった内容はbodyのところに書く。メッセージが長くて待ち時間が短いと、速読の訓練みたいになるけど。※1

4月 2, 2009 - コンピューター    FreeBSD7でpostfix+qpopper+dracd はコメントを受け付けていません

FreeBSD7でpostfix+qpopper+dracd

 postfix、qpopper、dracdの組み合わせで、POP before SMTPが動くサーバを立てるためのメモ。

 qpopperはinetdから呼び出したい。また、dracdを動かすにはrpcbindが動いてないとダメ。postfixはブート時に自動で走るようにしておく。

 まず、/etc/rc.confの設定。

sendmail_enable=”YES”
rpcbind_enable=”YES”
rpcbind_flags=”-s”
dracd_enable=”YES”
dracd_flags=”-i -e 10 /usr/local/etc/dracd.db”
inetd_enable=”YES”

としておく。
 dracd_flagsは、dracdが走る時のパラメータ。dracd.dbの在処までは明示しなくてもいいかもしれないが、一応念のため渡しておく。

 hosts.allowのrpcbindの分は、

rpcbind : ALL : deny
rpcbind : localhost : allow

とする。

 postfixはソースから拾ってきてインストール。特にオプションを指定しなくてもよい。ソースから入れると、設定ファイルは/etc/postfix/main.cfになる(portsから入れると/usr/local/etc/postfix/main.cf。両方あって紛らわしい時は一方を削除しておく)。

 main.cfのうち、pop before smtpに関係したところを次のように設定。mynetworksの設定が緩すぎると、研究室内のクライアントが接続しても、通常の認証扱いでdracd.dbが変わらなかったりする。

mynetworks = サーバのIP/32
alias_database = hash:/etc/aliases
smtpd_recipient_restrictions = permit_mynetworks,check_client_access,btree:/usr/local/etc/dracd,check_relay_domains,reject
mynetworks_style = host

 smtpd_recipient_restrictionsで指定したdracd.dbの在処が、dracd起動オプションと同じであることを確認。
/etc/aliasesを指定すると、/etc/aliases.dbを見ているっぽい。もし無ければ、rootでnewaliasesを実行するとデータベースが更新される。
 mynetworksは、研究室内は無条件で使わせるといった場合はIPの範囲指定でもいいけど、そうでないなら、サーバのIPだけにしてpopからdracdに登録させて使う方が良さそう。

 qpopperをdracを使うようにインストールするには、先にdracが入ってないとだめ。
 dracはソースから入れるとMakefileの変更などが面倒くさいので、portsから入れる。

cd /usr/ports/mail/drac
make install

とやって、

/usr/local/sbin/rpc.dracd
/usr/local/libdrac.a

ができていればよい。起動スクリプトの/usr/local/etc/rc.d/dracdがインストール時に作られる。

/usr/local/etc/dradc.allowを設定。dracd-allow.sampleそのままコピーでよいが、

255.255.255.255 127.0.0.1

も追加しておいた。

 dracdの起動は、

/usr/local/sbin/rpc.dracd -i -e 10 /usr/local/etc/dracd.db

 dracdの動作確認は、

/usr/ports/mail/drac/work/testing 127.0.0.1 111.222.333.444

などと叩いてから、

makemap -u btree /usr/local/etc/dracd.db

して、登録されていれば正常動作している。
 ただし、このチェックは一通りインストールして、一度リブートして、rc.confの変更が反映されてから確認した方が良さそう。

 qpopperのコンパイルは、ソースを拾ってきて展開後

./configure –enable-apop=/etc/pop.auth –enable-popuid=pop –with-drac=/usr/local/lib
make install

でよい。
 この設定だと、apopの認証ファイルは/etc/pop.authになる。
 もし、gdbmが無いと言われる時は、インストールしてなければ入れる。既に入っているなら

ln -s /usr/local/lib/libgdbm.a /usr/lib/libgdbm.a

などとやって、見えるようにしてやる。
 ./configure時のメッセージで。

Compiling in DRAC support
checking for dracauth in -ldrac… yes

と出ていることを確認。
 コンパイル終了後、エラーが出る場合は、Makefileと、popper/Makefileをエディタで開いて、後の方にある、

@${INSTALL} -s -m 0755 -o root popper ${installdir}/popper
@echo “Installed popper as ${installdir}/popper”

の@を取り除く。他の部分も同様に取り除く。
 /usr/local/sbinの下にpopperとpopauthができる。

 /etc/inetd.confの設定。

pop3 stream tcp nowait root /usr/local/sbin/popper popper -p2 -s -R

 変更したらinetdにHUPを送る。
 qpopperのオプションの意味は、

-d
Configure時に–enable-debugging を指定しておくと、デバッグログをsyslogに出せる。

-p 0|1|2|3|4
プレーンテキスト(plainパスワードの扱いを設定する。
0 (defaults) :「APOPデータベースに存在しないユーザ」のみ、通常のパスワード(平文)による認証を許す
1 : すべてのユーザ(APOPデータベースに存在しないユーザも)において、通常のパスワード(平文)による認証を許す
2 : 「APOPデータベースの中に存在するユーザ」であっても、通常のパスワード(平文)による認証を許す
3 : Loopbackアドレス(127.0.0.1)からの接続に関してのみ、通常のパスワード(平文)による認証を許す
4 : TSL/SSLによる通信の場合のみ、通常のパスワード(平文)による認証を許す

-R
クライアントIPの逆引き(reverse lookups)をOFFにする。ログファイルに出る、逆引きできませんでしたというあんまり意味のないエラーが出なくなる。

-s
syslogでログを記録する。

-T
クライアントからコマンドが到着するまでサーバが待つ時間(秒)を設定。デフォルト120秒。

 popperの場所はインストールの方法によって異なるので注意。
 実は最初、/usr/sbin/popperになってて、そっちはシンボリックリンクではなく別のpopperだったため、dracが動かなくて半日嵌った(泣)。
 /etc/hosts.allowは、

popper : ALL : allow

と、とりあえず制限はしない方針で。
 apop認証のユーザー名とパスワードは、とりあえずrootで

/usr/local/sbin/popauth -user ユーザー名 パスワード

とやると追加される。

 rc.confをいじってるので、動作が不穏なら論よりboot。
 メールクライアントからつないで、/usr/local/etc/dracd.dbにIPが登録されることを確認する。さらに、外部のアドレス宛にメールを送信してみて、送られていればOK。

固定ページ:«1...7891011121314»