お知らせ+活動記録+たわごと

HP と Twitter を補完するとともに、互いの密接な連携を図るため、本ブログを開設した。三位一体を目指す。情報提供、広報活動、教育・啓蒙活動の一環として、肩の力を抜き、冗長性を廃し、簡にして要を得た文章を書くよう心がける。
<< December 2016 | 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 >>
 
MOBILE
qrcode
PROFILE
無料ブログ作成サービス JUGEM
 
えり抜きエントリー選集
  • 2011.03.03: 世界の材料科学者トップ100にランクイン
  • その他 | 08:56 | comments(0) | - | - |
    第10回 結晶性萌芽材料 粉末回折研究会開催のお知らせ
    名古屋工業大学の福田功一郎先生のご尽力により、毎年恒例の粉末回折研究会(一般公開)を開催します。

    第10回 結晶性萌芽材料 粉末回折研究会
    日時: 2016年12月2日(金)15:00〜18:00
    開催場所: 名古屋工業大学(御器所キャンパス)2号館

    プログラム
    15:00〜15:30 泉 富士夫「粉末構造解析結果のドキュメンテーション」
    15:30〜17:00 冨中悟史「PDF を用いたナノ材料の未知構造解析手法」
    17:00〜18:00 質疑応答および懇談会                

    私の話は岡山大学での講演「英文執筆とテキストデータ処理 ― 私の流儀」の後半部分を焼き直したものに過ぎず、メインイベントは冨中氏の講演です。詳しくはアブストラクトをお読みください。十分広い教室で開催するため、事前の参加登録は必要ありません。聴講は無料です。

    二体分布関数 (Pair Distribution Function: PDF) の解析は、古くから無定形物質や液体などの構造解析に利用されてきました。PDF 解析は周期的構造からの「ずれ」を把握するためにブラッグ反射と散漫散乱成分の両方を解析することから、全散乱 (total scattering) 法とも呼ばれています。近年、放射光源やパルス中性子源で高強度ビームが使えるようになった結果、PDF 解析は結晶質材料にも広く適用されつつあります。PDF 解析は古典的構造精密化法であるリートベルト法を補完する役割を担えます。コンベンショナルな解析技術で得られた平均構造だけでは物性や化学的性質を理解し難い物質・材料への応用が期待できます。

    冨中氏は既成ソフトに対する不満点を解消するため独自の PDF 解析プログラムを鋭意製作中であり、完成の暁には無償でネット配付するそうです。名前はまだありません。X線リートベルト解析エンジンとして RIETAN-FP を組み込みます。

    長年にわたり膨大な数の研究成果に貢献してきた RIETAN、論文の被引用数/年が1000の大台に迫る勢いの VESTA に続く NIMS 発の著名ソフトウェア第3弾にまで成長することを願い、私はこの PDF 解析プログラムのプロモーションに全面協力しています。それが希少価値と波及効果を兼ね備えていると直感したためです。陳腐化・コモディティ化したリートベルト法にだけしがみついている時代は過ぎ去りました。本研究会を皮切りに、今後、講演会や講習会などを通じて宣伝・教育することにより知名度を高め、普及に努めていきます。ご期待ください。

    上記研究会に来訪していただいたお客様を手ぶらで帰すわけには行きません。出し惜しみをしないところが私の美点なので、正体不明「謎のプレゼント」を差し上げます。RIETAN-FP・VENUS システムの徹底活用に直接役立つものとだけ申し上げておきます。
    岡山大学での講習会と講演会(まとめ)
    「泉 富士夫の粉末回折情報館」の新着情報に掲示した岡山大学での講習会・講演会(2016年7月11〜13日)に関する会告と開催報告に加え、同大学の関連 Web ページへのリンクを合体したのが本エントリーである。

    1. 2016年6月3日(金)講習・講演会(岡山大学)のお知らせ

    2016年7月11日(月)・12日(火)に岡山大学工学部

    「RIETAN-FP・VENUS システムと外部プログラムによる粉末構造解析」講習会
    ポスター | 要旨

    を開催することが決まりました。日本中の学生、研究者、技術者の(再)教育を目指しているため、学外の方でも参加登録さえしていただければ受講できます。

    11日はリートベルト法、パターン分解、構造モデルの構築、最大エントロピー法 (MEM) などの粉末回折データ解析技術について初心者向きに講義し、12日を実習に当てます。Windows 上での実習には秀丸エディタ (+統合支援環境), RIETAN-FP v2.82, VESTA v3.3.8, gnuplot v5.0.3, WinPLOTR, DICVOL, ORFFE, lst2cif, cif2ins, ALBA, superflip, EDMA, FOX, Dysnomia + MPF_multi などの無料プログラムを使います。昨年10月に龍谷大学で開催した「RIETAN-FP・VENUS システムと外部プログラムによる粉末構造解析」で使用した無料プログラム群の一部を更新し FOX を追加したものに相当し、特製インストーラーにより C:¥Program Files フォルダーに一挙にインストールできます。このインストーラーは後日、自分の Windows PC でもお使い頂けます。

    講義には百数十枚のスライドを使いますが、カラー印刷の経費と手間をカットするため、参加者にはその PDF ファイルを配付します。実習では上に列挙したプログラムをインストールした後、次から次へと実行していくため、メモをとり続けるのは大変です。そこで実習時の操作を箇条書き形式で逐一記述した LaTeX 文書を参加者に配付し、後で各自が実習内容を再現できるよう配慮します。これほど出し惜しみしない講習会は希でしょう。

    7月13日(水)には理工系の方々を対象に

    「英文執筆とテキストデータ処理 ― 私の流儀」

    と題して講演します。前半は長く英語論文の添削に従事してきた経験に基づいてまとめた理工学一般で通用するチュートリアル「科学英語論文執筆の手引き」を眺めながら、キーポイントを解説していきます。後半はテキストファイルを sed や awk などの UNIX ツールや gnuplot や LaTeX などのフリーソフトウェアにより CUI (Character User Interface) を通じて処理することの重要性と効率の高さを説きます。余興として裏技 mcz を披露した後、RIETAN-FP の解析結果から CIF (Crystallographic Information File) 、グラフ、結晶模型、電子密度分布図などを作成し、それらを LaTeX で PDF ファイルとして統合し、さらには和訳するという一連の手続きを実演します。すべて自前のソフトで作成したデータだということを誇りに思います。

    参加者には「科学英語論文執筆の手引き」、プレゼンテーション用 PDF ファイル、謎の超弩級プレゼント(希望者限定)を差し上げます。講習・講演会のいずれも参加登録費は無料です。個人的社会貢献として催すため、講義・講演料もゼロ円とするよう大学にお願いしました。

    三日連続で人前に立つのはかなりきついですが、体調を崩さぬよう気をつけます。盛会となれば馬力が一段と上がりますので、奮ってご参加ください。

    2. 2016年7月16日(土)全力講習会・講演会の開催報告

    岡山大学工学部で7月11・12日に開催した「RIETAN-FP・VENUS システムと外部プログラムによる粉末構造解析」講習会と翌日の講演会は延べ90名以上の参加者を集め、盛会裏に終わりました。学外の受講者がかなり多かったのが特徴です。中国四国・近畿・中部・関東・東北の各地方はもとより、なんと外国在住の方までおられ、明らかにローカルな催しからの脱却を果たしていました。当初会場に予定していた教室では受講者を収容し切れなくなったため、より広い教室に変更したにもかかわらず、そこもほぼ満杯という望外の人気を博しました。

    12日の実習は昼食抜きの過酷なデスマッチとなりました。多少のトラブルこそ勃発したものの、渾身の力を振り絞った実地指導と LaTeX で箇条書きにした手順書は好評だったようです。翌13日の「英文執筆とテキストデータ処理 ― 私の流儀」講習会は、力余って予定時間(1時間半)を60分近く超過してしまいました。やや冗長な上、脱線気味だったことを反省しています。

    再配布禁止条件の下で参加者だけに差し上げる「謎の超弩級プレゼント」とは、RIETAN-FP_manual.pdf をタイプセットするのに必要な全ファイル(*.tex, *.bib, my.bst, *.pdf)のアーカイブファイル(56.7 MB)に他なりません。私はもう先が短いです。これらを死蔵したままこの世を去るよりは、多数の図、表、数式、文献を含む巨大文書の高品質・高速組版技術の公開を通じて社会に貢献すべきだという心境を抱くに至りました。

    事前の予想を大幅に超す参加登録者数に励まされつつ体力の限界に挑み、三日間のワンマンショー(+懇親会)を無事乗り切りました。献身的に支援して頂いた教職員の方々と受講者の皆様に厚く御礼申し上げます。今回の成功に意を強くしましたので、来年度も実習主体、参加費無料、無報酬の講習会を中部地方以西で開催するつもりです。ご期待ください。

    3. 2016年8月19日(金)岡山大学の関連 Web ページ(新着ニュース)

    共同利用機器利用講習会「RIETAN-FP・VENUSシステムと外部プログラムによる粉末構造解析」を開催
    RIETAN-FP v2.8X リリース時の掲示(まとめ)
    RIETAN-FP ユーザーのために便宜を図るべく、「泉 富士夫の粉末回折情報館」の新着情報に掲示した RIETAN-FP v2.8X に関する全記事を一つのエントリーとして合体した。RIETAN-FP v2.8 が小刻みに改善され v2.82 にまで至った経緯が把握できよう。

    1. 2016年5月6日(金)新 RIETAN-FP・VENUS システム配付ファイルの公開

    RIETAN-FP v2.8 の完成を受け、Windows・OS X 用 RIETAN-FP・VENUS システムの配付ファイル三つを先ほどアップロードしました。遅れに遅れて約半年ぶりのリリースとなったのは、人材育成事業(Nanotech CUPAL)を優先せざるを得なかったためです。中でも百数中枚に達するスライドの英訳には疲れ果てました。

    主な変更点は RIETAN-FP_manual.pdf の最終パート「多目的パターンフィッティング・システム RIETAN-FP の新機能について」中の
    5 X線分散補正項と質量減衰係数のグラフ化
    27.5 反射リストを CIF に追加するマクロ refln(「反射リストからデータを抽出して CIF を作成するシェルスクリプト」参照)
    27.6 LaTeX 関係のマクロ
    に記しました。RIETAN-FP_manual.pdf は documents.zip の展開により生成する documents フォルダーに入っています。同フォルダー中の Readme_*.pdf 4つも改訂しました。Windows 版に同梱しているフリーソフトウェアのうち、gnuplot は v5.0.3 に、Ghostscript は v9.19 にバージョンアップしました。OS X 版のユーザーは gnuplot を v5.0.3 にアップデートしてお使いください(「RIETAN-FP への gnuplot の導入」参照)。Plot と xdc を使うには最新版が必要です。Windows 版ではさらに RIETAN_VENUS¥Commands フォルダーにプログラミング言語 AWK の処理系 gawk.exe (refln で使用) と pdftk.exe (PDF ファイル処理コマンド、Windows 用 cif2pdf で使用) を追加しました。

    92元素に対する質量減衰係数(mass attenuation coefficient)ρm のフォトン・エネルギー依存性をテキストファイル mac.tbl として保存しました。これに伴い、多相試料でミクロ吸収 (microabsorption) を補正する際、構成元素の ρm が自動計算されるよう改善されました。

    hoge.ins で NPRINT = 2 に設定して RIETAN-FP を実行した後、xdc マクロを選択し元素名を指定すると、X線分散(俗に言う異常分散)の実数項 f ' と虚数項 f ''、ρm が波長(フォトン・エネルギー)の関数としてプロットされます(下図)。



    吸収端の波長をブラウザーで表示するという離れ業も楽しめます。この新機能は放射光だけでなく特性X線でも使えます。hoge.ins において純粋な化学種 (pure chemical species) として任意の元素名をダミー入力して当該元素のグラフを描くという裏技も忍ばせました。一般に物質によるX線の吸収スペクトルを測定すると、吸収端より高エネルギー側で吸収が激増します。急激に吸収が強まる端っこという意味で吸収端と呼ばれます。これは 殻電子のような内殻電子を励起するのに必要なエネルギーに他なりません。吸収端より高エネルギー側では、 殻や 殻から電子が落ちてくるとき発生する蛍光X線も強まります。xdc が出力するグラフはたとえば Cu Kα 特性X線で粉末回折データを測定するとき Ni フィルターで Cu Kβ 線をカットし、Fe を主成分として含む試料でバックグラウンドが高まるといった現象の理解に役立ちます。Nanotech CUPAL と名工大向けの教材として本新機能を支援環境に加えました。

    LaTeX 用マクロ cif2pdf は
    1. hoge-cif: lst2cif と refln で作成した結晶構造データ、幾何学的パラメーター、反射リストなどの CIF (Crystallographic Information File)、
    2. hoge.pdf: RIETAN-FP によるリートベルト解析結果に基づいて Plot マクロで作成した観測・計算・差パターン、
    3. hoge-struct.pdf: VESTA で作画した結晶模型、
    4. hoge-density.pdf: VESTA で描いた電子・干渉性散乱長密度分布のイメージ、
    5. hoge-mscs.pdf: MSCS マクロで作成した Williamson–Hall あるいは Halder–Wagner プロットのグラフ、
    6. append.pdf: hoge-report.pdf の末尾に追加すべき PDF(たとえば xdc の出力 xdc-*.pdf や "International Tables for Crystallograhy," Vol. A 中の特定空間群のページ)
    を合体し、hoge-report.pdf(英語)を作成します。cif2pdf のhoge-report.tex作成部分の実体は FORTRAN 90 プログラム cif2ins に他なりません。引き続き E2J を実行すると、日本語文書 hoge-report-j.pdf に「翻訳」されます。組版エンジンには高速性を重視し pdflatex (cif2pdf) と platex + dvipdfmx (E2J) を採用しました。両マクロを使うのに必要不可欠な TeX Live のインストールについては「OS X・Windows 用 TeX Live のインストール」を参照してください。

    CIF は単なるテキストファイルに過ぎず、科学情報を過不足なく伝えるだけの表現力を持ち合わせていません。理工系文書に頻出するイタリック、上付き、下付き、ボールド、オーバーライン、ギリシャ文字などの書体や数式については、完全にお手上げです。そこで CIF を文書化するプログラムが過去に多数出現しましたが、図や付録を自動挿入できる上、日本語に「翻訳」までしてくれる cif2pdf + E2J のような賢いソフトは寡聞にして存じません。画期的なユーティリティーと言ってよいでしょう。

    簡易タイプセット用マクロ Typeset, BibTeX, MakeIndex による手っ取り早く高速な組版も実現しました(「Jedit X 用 LaTeX 組版支援環境」参照)。OS X では PDF ファイル閲覧プログラム Skim をインストールしてから、お使いください。これら三つはあくまで自分用のマクロであり、人様に使って頂くことは念頭に置かずに設計・製作しました。従来、LaTeX 文書のタイプセットには TeXShop を愛用してきましたが、タブでウィンドウを切り換えられない旧態依然の GUI には失望していました。TeXShop の使用を前提とする「Mac 用 TeX による英文・和文のタイプセット」という文書を公開している自分ですが、TeXShop にはもう見向きもしていません。ここまで LaTeX に肩入れするのは、商用ソフト(Microsoft Word)の鈍重さと不適切なカーニングに日ごろ辟易していることに加え、優れた無償ソフトを普及させたいと願っているためです。cif2pdf や E2J で LaTeX に慣れ親しんでおけば、自ずと LaTeX の世界に引き込まれていくと思われます。

    グラフではセリフでなくサンセリフを選択することが望ましいという "Gnuplot in Action" 中での指摘に触発され、Plot, MSCS, xdc マクロで作成するグラフ中のフォントを Times から Helvetica に変えました。gnuplot スクリプトファイル hoge.plt を書き直せば、欧文基本35書体の PostScript フォントに変更できます。フォント名は RIETAN-FP_manual.pdf の17.7.1に列挙しておきました。さらに上図と同様に、リートベルト解析パターンの横軸(上部)に格子面間隔 d の目盛、数値、ラベル(d/Å)を付けられるようにしました:



    このグラフではタイトルと信頼度の指標4つも表示しています。ご覧のように、計算パターンの色は cyan に戻しました。

    Windows 用プログラムの起動に使うバッチファイルのうち cif2ins.bat, Plot.bat, refln.bat, RIETAN.bat, Typeset.bat は FINDSTR + (&& or ||)(「FINDSTR 実行後の ERRORLEVEL に応じた条件分岐」参照)により文字列検索後に場合分けするよう改善しました。洗練されていない FOR 文が減ったのは実に良い気分です。UNIX 系コマンドがインストール済みの環境で MPF_multi.command が正常に動作しないという不具合を修正しました。PATH 指定の順番が不適切でした。また念のために Plot.bat で遅延環境変数を展開するよう改めました。

    RIETAN-FP の入力ファイル hoge.ins のひな形に多少手を入れました。とくに ORFFE 用入力(「ORFFE による結合角と二面角の計算」参照)の部分には大なたを振るいました。適切な最大結合距離を指示した 201 命令さえ hoge.ins に含まれていれば、ORFFE を2回続けて実行するだけで全結合角を計算できることを考慮しました。それでもまだ完璧からは程遠いでしょう。意味不明な箇所や誤りがありましたら、遠慮なくご指摘ください。なお、Cimetidine のリートベルト解析において構造パラメーターを固定していたことに気づき、すべての可変パラメーターを精密化するよう Cimetidine.ins を変更しました。

    その他、細かい修正は多数にのぼりますが、省略します。

    従来、OS X 版では RIETAN_VENUS/template_commands フォルダーに入っているシェルスクリプト *.command のひな形から解析ファイル専用のシェルスクリプトを RIETAN_VENUS/commands フォルダーに生成するサービスを提供してきましたが、今回、廃棄処分に踏み切りました。MPF_multi.command は commands_common フォルダーに移しました。Jedit X 上で動作する RIETAN-FP・VENUS 統合支援環境に比べると使い勝手が今一つだからです。老骨に鞭打って孤軍奮闘している自分としては、メンテナンスの手間を省けるのは助かります。

    これまで OS X 用支援環境におけるショートカットの設定には BetterTouchTool の使用を推奨してきましたが、システム環境設定の [キーボード] で [ショートカット] タブをクリックして設定するオーソドックスな手続きに立ち戻ることにしました(Readme_scpt.pdf, 2.3.3参照)。 [キーボード] で設定したショートカットがしばしば無効になるという不具合が El Capitan では解消したためです。[キーボード] による設定には、登録したショートカットがマクロのプルダウンメニューに表示されるという利点があります。

    2. 2016年5月15日(日)RIETAN-FP・VENUS システムの更新

    RIETAN-FP を v2.81 にバージョンアップし、9日前に公開したばかりの RIETAN-FP・VENUS システムを早々とマイナーチェンジしました。

    Gnuplot が "terminal postscript eps ....." コマンド("gnuplot 5.0 ― An Interactive Plotting Program", p. 225参照)により EPS 形式の PostScript ファイルを出力するよう変更した結果、Windows・OS X 版のいずれにおいても pdfcrop によるマージンの切り取りが不要になりました。すなわち TeX Live をインストールしていなくても、余白のない PDF ファイルが得られます。処理速度が遅い pdfcrop を実行せずに済むため、グラフが表示されるまでの時間がかなり短縮されます。

    Windows 版では、32ビット版 Ghostscript、すなわち gswin32c.exe によって PostScript ファイルを PDF ファイルに変換するよう変更しました。Ghostscript パッケージに含まれる pdfcrop や pdfcrop14 などは EPS ファイルを正常に処理できないためです。

    hoge.ins 中で NPRINT = 2 に設定すると "_pd_peak_intensity = ....." が2回出力され、その結果 refln マクロでトラブルが発生するというバグを解決しました。

    その他、5つのマニュアルと RIETAN-FP 用入力ファイルのひな形 hoge.ins を少しずつ修正しました。



    ここ何年か、RIETAN-FP の新バージョンを公開するたびに講演会や研究会でお披露目するのが恒例となっています。それらの集会までに RIETAN-FP をバージョンアップせねばならぬという状況に自らを追い込むべく、意識的にそう心がけてきました。偶然ですが、今回も RIETAN-FP v2.81 と過去一年間に開発・改善した周辺ソフトについて紹介する機会に恵まれました:

    「RIETAN-FP・VENUS システム ― 最近の進歩」
    日時:6月1日(水)16:30〜17:30、場所: ファインセラミックスセンター(名古屋市熱田区)

    MacBook Pro による実演を交えながら熱弁を振るいます。当日までに gnuplot の pdfcairo ターミナルを使うスクリプトファイル hoge.plt を出力する RIETAN-FP v2.82 を完成させ、GUI 抜きのグラフ化エンジン gnuplot+cairo+pango 複合体の利点、すなわち高速性と高品質イメージ・フォントを最大限に活かせるようにします。また OS X 用 gnuplot が専用インストーラで使えるようになります。

    部外者のご来聴も歓迎します。ご希望の方はあらかじめ担当者(小西)に参加登録のメールをお送りください。折り返し、アブストラクトを添付した受付メールをお送りします。

    3. 2016年5月20日(金)RIETAN-FP・VENUS システムの微修正

    5月16日以降、
    • バッチファイル Plot.bat, cif2ins.bat, cif2pdf.bat(Windows 版)
    • それらに相当するシェルスクリプト Plot.command, cif2ins.command, cif2pdf.command(OS X版)
    • RIETAN-FP のひな形ファイル BiCoO3.ins と Cu3Fe4P6.ins
    に誤りが見つかったため、以下のように修正し、急遽 Windows_versions_20160520.zip とOS_X_versions_20160520.dmg を RIETAN-FP・VENUS システム配布ファイルにアップロードしました。

    Plot.bat と Plot.command で裏技が正常に動作しないのを修正しました。Gnuplot スクリプトファイル hoge.plt 中で set terminal postscript eps ..... に乗り換えたのを反映させていなかったのが原因です。

    cif2ins.bat, cif2pdf.bat, cif2ins.command, cif2pdf.command において cif2ins 実行形式プログラムの引数(ファイル名)が一部間違っていたのを正しました。pdfcrop を使用していた時のファイル名に留まっていた他、余分な引数が一つぶら下がっているスクリプトがありました。

    RIETAN-FP v2.8 以降、不要になった質量減衰係数の入力行が多相試料のひな形ファイル BiCoO3.ins と Cu3Fe4P6.ins に残存していたことがパワーユーザーから指摘されたため、削除しました。

    4. 2016年6月14日(火)RIETAN-FP v2.82 のリリース

    RIETAN-FP を v2.82 にマイナーチェンジし、RIETAN-FP・VENUS システムの配付ファイル三つを更新しました。

    v2.82 では gnuplot における terminal(出力先)を古典的な postscript eps から pdfcairo に変更しました。4月中旬に入手した "Gnuplot in Action", 2nd ed. が pdfcairo への移行を促してくれました。pdfcairo の採用に伴い、フォントやマークのサイズは元通りになりました。目盛がグラフの境界線に比べ約半分の線幅に固定されてしまうという postscript eps 使用時の深刻な不具合も解消しました。また pdfcairo はグラフの余白を自動的に切り取るため、TeX Live の pdfcrop や Ghostscript の gswin32c コマンドはもはや不要です。したがって、これまで Windows 版に同梱していた Ghostscript は削除しました。

    pdfcairo は余白をカットした後、PostScript コードを経由せずに PDF ファイルを直接出力するため、Plot, MSCS, xdc マクロの実行時間が大幅に減りました。

    pdfcairo への切換時に獲得した重要な知識と情報はすべてブログエントリー「OS X 用 gnuplot で pdfcairo ターミナルを使うための手続き」に記録しておきました。pdfcairo 活用の一助となれば幸甚です。

    従来はタイトルや軸のラベルの一部が欠落しないよう一部の文字列の先頭あるいは末尾に "¥n"(改行コード)を挿入していました。このような苦し紛れの対症療法は好ましくないと判断し、gnuplot スクリプトファイル *.plt 中に "set margins <left>, <right>, <bottom>, <top>" コマンドを挿入しました。

    OS X 上では gnuplot を Homebrew でなくスタンドアローンのインストーラーで Applications フォルダーにインストールするよう変更しました。この gnuplot は二次元グラフィックス・ライブラリー cairo と多言語テキスト配置・レンダリング用ライブラリー pango を包含しています。旧バージョンの Mac ユーザーはお手数ですが、上記エントリーの記述に従って gnuplot をアンインストール・再インストールするようお願いします。

    5月6・15日と本日の最新情報から、gnuplot の徹底活用を目指し私がいかに精進してきたかを読み取れるでしょう。力不足のために短期間に3回も配付ファイルを更新し、拙作ソフトのユーザー様を徒に混乱させたことをお詫びします。

    5. 2016年7月19日(火)RIETAN-FP・VENUS システムの微修正

    RIETAN-FP・VENUS システムのマニュアル類を収めたアーカイブファイル documents.zip を更新しました。RIETAN-FP_manual.pdf 中のタイプミスを修正するとともに、数値–単位間のスペースを一文字分の空白の 3/18(LaTeX では '¥,')に統一しました。

    6. 2016年8月10日(水)秀丸エディタ用設定ファイルの改訂

    Windows 用 RIETAN-FP・VENUS システムをほんの少しだけ改善し、Windows_versions_20160810.zip としてアップロードしました。といっても、RIETAN-FP のバージョンは 2.82 のままです。

    秀丸エディタ用設定ファイル RIETAN-FP.key と RIETAN-FP.reg を単一ファイル RIETAN_VENUS.hmereg に統合しました。「その他 > 設定内容の保存/復元」で "設定情報をファイルから復元する" のラジオボタンをチェックした後、RIETAN_VENUS.hmereg を読み込み、レジストリに設定情報を書き戻します。統合支援環境のセットアップ時間が少しだけ短縮されます。つい最近まで拡張子 .hmereg のファイルに全設定を保存できることを寡聞にして存じませんでした。詳しくは、秀丸エディタヘルプ中の「秀丸エディタにおける設定内容の保存/復元」をお読みください。Readme_macros.pdf にもその変更点を反映させ、マニュアル類のアーカイブファイル documents.zip を更新しました。

    なお、mcz.bat という謎のバッチファイルを Batch_files フォルダーに忍ばせておきました。実習時の余興用なので、マニュアルには記載していません。

    7. 2016年8月25日(木)RIETAN-FP・VENUS システムの配付ファイル二つを更新

    最新の Windows 10 上で RIETAN-FP・VENUS システムをインストールまたはアンインストールしようとしても、コマンドプロンプト窓にフォルダー・ファイルを処理するためのコマンドがまったく表示されないという不具合が見つかりました。Install_RIETAN_VENUS.bat と Uninstall_RIETAN_VENUS.bat のダブルクリックだけでインストール・アンインストールできるようにしたのが裏目に出たようです。

    そこでバッチファイルを右クリックしてから「管理者として実行」を選び、ユーザーアカウント制御 (UAC) の下でインストール・アンインストールするよう変更しました。さらに Readme_Win.pdf 中の関連する記述を修正しました。

    8. 2016年11月28日(月)RIETAN-FP v2.83 のリリース

    RIETAN-FP を v2.83 にバージョンアップし、RIETAN-FP・VENUS システムの配付ファイル三つを更新しました。新機能はとくになく、v2.8を熟成させただけです。OS X から macOS への改称に対応するため、Mac 用配付ファイル OS_X_versions_YYYYMMDD.dmg(YYYY: 年、MM: 月、DD: 日)は macOS_versions_YYYYMMDD に改名しました。

    主な変更点は以下の通りです。
    1. hoge.ins 中の変数とラベルの名前が規則に従っていない場合は、誤りを指摘するようにした。
    2. ラベル名は英数字と "@" からなると正式に定めた。
    3. hoge.ins から一部のデータを入力中にエラーが発生した場合、エラーメッセージを出力するよう改善した。
    4. 放射光の波長が 0.413 280 7 Å より短いときは、自分でX線分散の補正項 f' と f" を入力するよう促すことにした。
    5. MEM 解析などに用いる a, b, c 軸方向の分割数(NVOXA, NVOXB, NVOXC)を第一相の格子定数 a, b, c と比較し、大小関係が不適切だったらプログラムを終了するよう改訂した。
    6. 共役方向法のサイクル数を3桁まで出力するよう修正した。
    7. 多相試料の放射光粉末回折データをリートベルト法で解析する際には構成元素の質量減衰係数 (mass attenuation coefficient) を入力しないよう hoge.ins を改訂した。
    8. Nanotech CUPAL などにおける MPF 解析の実習用に使うために、ひな形ファイル Cimetidine.ins 中に水素原子の構造パラメーターを追加するとともに、選択配向は補正しないよう変更した。
    9. gnuplot スクリプトファイル中の DLW と BLW のデフォールト値を1.0に変更した。
    10. gnuplot スクリプトファイル xdc.plt 中に gnuplot 5.0.5 以降で使える命令 "set minussign"(負の値における先頭のハイフンをマイナスに置き換える命令)を注釈として挿入した。
    11. Windows 用 gnuplot でリートベルト解析・シミュレーションのパターンをプロットする際、ピーク位置を表す縦棒の中心に小さなセンターシンボル()が現れるというバグを修正した。
    12. Windows 上で lst2cif を実行した後、一時ファイル hoge.tmp が残存するという不具合を解消した。
    13. Windows 用の自作プログラムはすべて64ビット版に統一した。32ビット版 Windows 機へのインストールは拒絶する。
    14. Windows 用配付ファイルに同梱している gnuplot 5.0.4 を64ビット版に替えた。
    今回のバージョンアップにあたり、32ビット版 Windows(時代遅れ!)は惜しげもなく切り捨てました。孤立無援状態に陥っている今、余計な手間は能う限り省きたいのです。今どき32ビット CPU の PC を使っている人は稀でしょう。必要なら、Zinstall WinWin のような引っ越しソフトを使って、64ビット Windows に入れ換えればいいだけのことです。暫定的に残している前配付ファイル Windows_versions_20160825.zip は、いずれ予告なしに削除します。
    Gnuplot で pdfcairo ターミナルを使うための手続き
    最近購入した "Gnuplot in Action", 2nd ed. を流し読みしていたとき、
    A major breakthrough is the development of a family of terminals that are all based on a single set of contemporary libraries for graphics and text rendering. Because these terminals all share the same back end, you can now create bitmaps (PNG), vector images (PDF), and graphs for interactive viewing (wxWidgets) with consistent appearance across all formats. Gnuplot takes advantage of the cotemporary features of the underlying libraries to produce high-quality graphs through the use of over-sampling, anti-aliasing, and so on.
    .....
    In the past, gnuplot's support for PDF was relatively weak, particularly in comparison to the very full-featureed PostScript terminal. This situation has now been reversed, and the Cairo-based PDF terminal is probably to be preferred over the classic PostScript terminal.
    という指摘(14ページ)が目に付いた。213, 214, 220ページでも 2D グラフィックス・ライブラリー cairo に基づくターミナルに言及している。その的確な現状認識に触発され、RIETAN-FP v2.81 に至るまで長く出力先に指定してきた gnuplot の postscript ターミナルを pdfcairo ターミナルに切り換えようと決意した。グラフの枠と目盛りの線幅を同一にできないという postscript ターミナルの欠陥には我慢がならなかった。古くからあるターミナルだが、未だに枯れきっていないのである。PDF ファイルへの変換に余計な時間がかかるのも気になっていた。pdfcairo なら直接 PDF ファイルが生成する。

    以前 pdfcairo の利用を検討した際には、Homebrew を通じて macOS 上で gnuplot と cairo とを連携させる方法が突き止められず、あえなく挫折した。今回は不退転の覚悟で臨み、徹底的に調査した。その結果、習い覚えたノウハウとテクニックを以下に報告する。

    macOS 用 gnuplot は、次の手続きに従ってインストールすることを推奨する:
    1. すでに gnuplot をインストール済みだったら、必ずアンインストールする。たとえば Homebrew でインストールした場合は、ターミナルで "brew uninstall gnuplot" と入力してアンインストールする。
    2. 古いバージョンの gnuplot が残っている場合は削除用コマンドが指示されるので、その通り入力する。
    3. Gnuplot の Web サイトの contributed executables for OSX でインストーラー gnuplot-5.0.3-quartz.pkg をダウンロードする。
    4. gnuplot-5.0.3-quartz.pkg をダブルクリックして gnuplot 5.0.3 をインストールする。
    5. Applications フォルダーに gnuplot(実体は Gnuplot.app パッケージ)が生成したことを確認する。
    readme.text に明記されているように、こうしてインストールした gnuplot は cairo に加え多言語テキスト配置・レンダリング用ライブラリー pango も包含しており、pdfcairo を出力先とする RIETAN-FP v2.82 と互換性がある。macOS 版 RIETAN-FP の出力する hoge.plt における文字のシフトやマージンはこの gnuplot 用に最適化されている。シェルスクリプト中では
    /Applications/Gnuplot.app/Contents/Resources/bin/gnuplot-run.sh
    を gnuplot コマンドとして使えばよい。gnuplot-run.sh 中で11個の環境変数が定義された後、同じフォルダー内の(環境変数を設定できない)実行形式ファイル gnuplot が起動する。/usr/local/bin/gnuplot が存在しなければ、起動可能な /usr/local/bin/gnuplot が置かれるが、以前インストールした gnuplot が残っていると、それが実行されてしまう。したがって絶対パス付きの gnuplot-run.sh を実行する方が安全・確実である。Gnuplot スクリプトファイル *.plt は cat コマンドでテキストデータに変えた後、パイプを通じて gnuplot-run.sh に渡すか、gnuplot-run.sh の引数にすればよい。

    Windows 用インストーラーは SourceForge からダウンロードできる。Windows 用 RIETAN-FP・VENUS システムに同梱している gnuplot は、インストーラーの実行によって生成した gnuplot フォルダーを RIETAN_VENUS フォルダーの下にコピーしたものに他ならない。ありがたいことに、その gnuplot では cairo + pango、ひいては pdfcairo が標準で使える。ただし、fontscale と offset の最適値は macOS 用と微妙に異なる。

    出力先として pdfcairo を指定したとき、gnuplot スクリプトファイル中でギリシャ文字や記号などをどのように記述すればいいのかについては、"Gnuplot in Action" の10.2.3を参照されたい。RIETAN-FP v2.82 以降が出力する *.plt も恰好の手本となる。その際の手間を減らすために、RIETAN-FP・VENUS システムのマクロが出力する *.plt ファイル中の8進コード(\+3桁の8進数の繰り返し)を以下に列挙しておく:
    \316\262: β
    \316\270: θ
    \316\273: λ
    \316\274: μ
    \302\260: ° (度)
    \303\205: Å
    \342\210\222: −(マイナス; UNICODE: U+2212)
    \342\200\262: ′ (プライム)
    \342\200\262: ̋ (ダブルプライム)
    特定文字の8進コードを知るには、二つの Web ページ「UTF8エンコードをデコードする」「文字コード変換」で変換するとよい。その際には「Unicode 対応 文字コード表」も役立つ。イタリックの書体にするには、たとえば θ の場合 "{/:Italic \316\270}" と入力する。

    一般にグラフ中のラベルや数値には sans-serif 系のフォントが適している。terminal pdfcairo のデフォールトは sans である。"Gnuplot in Action" の215ページには
    If a sans-serif font is selected as the default font for a terminal, then the font subsystem will attempt to find sans-serif glyphs for all requested characters even for special symbols.
    と書かれている。実際、デフォールト・フォントのまま8進コードを書くと、ギリシャ文字なども sans-serif 書体となる。ただし Windows 10 ではたとえば
    set terminal pdfcairo ..... font "Arial" fontscale 0.5
    というように sans-serif 系フォントを明示するべきである。デフォールトのフォントが斜体のフォントスタイルを含んでいないと、標準文字が出力されてしまうためだ。C:¥Windows¥Fonts フォルダー内の Arial を見ればわかるように、標準、極太、斜体、太字、太字・斜体の TrueType フォントが使える。Arial を指定した場合もギリシャ文字などが sans-serif 書体で出力されることに変わりはない。なお、fontscale のデフォールトは0.5だが、これの変更により実質的なフォント・サイズを一挙に変えられる。

    イタリックでない文字は、たとえば
    {/Symbol \260}: ° (度)
    {/Symbol \242}: ′ (プライム)
    というように PostScript 文字コードを書いてもよい。ただし sans-serif 書体にはならない。

    上述の8進コードや PostScript 文字コード (Symbol) は macOS、Windows を問わずに通用する。Unicode のテキストファイルを出力できない高級言語でビルドしたプログラムで gnuplot スクリプトファイルを出力する場合に役立つ。一方、テキストエディターでスクリプトファイルを編集するのであれば、「RIETAN vs. Z-Rietveld」に例示したように "set encoding utf8" という行を挿入し、それ以降にギリシャ文字、記号、かな漢字などを直接書いて、UTF-8エンコーディングでファイルを保存する方が明らかに楽だ。

    Gnuplot 5.0.4以前の pdfcairo には major tics(主目盛)に対する数値が負のとき、数字の前にマイナスでなくハイフンが付いてしまうという欠陥があった。Gnuplot 5.0.5からは "set minussign" コマンドによりハイフンでなくマイナス (UNICODE: U+2212) を出力できるようになった。

    ターミナル pdfcairo はフォントを指定しなければ、英数字はもとよりギリシャ文字や記号などもグラフに最適の sans-serif 書体に統一して出力するという利点を持つ。terminal pdfcairo には crop オプションがなく、pdfcairo へのグラフ出力ではデフォールトで余白が切り取られることも、利便性の高さと処理時間の短縮に寄与する。タイトルやラベルの一部がカットされるようだったら、
    set margins <left>, <right>, <bottom>, <top>
    という命令で余白を微調整すればよい。負の値だと gnuplot が決めたマージンが使われる。

    ターミナル pdfcairo への出力で得られた PDF ファイルは LaTeX, Microsoft Word, Keynote などの文書に直接挿入できる。今後は pdfcairo をフル活用していく。

    なお、"Gnuplot in Action" 中の一節(213〜214ページ)、
    Because an entire family of terminals(注: pngcairo, pdfcairo, epscairo, wxt のこと)shares a common back end, it's now possible to generate bitmap (PNG), vector (PDF and EPS), and interactive (wxWidgets) versions of the same graph, with only minor differences between them.
    では cairo・pango ライブラリーを使うターミナルの互換性の高さが強調されているが、そう簡単にターミナルを変更できる訳ではない。グラフの見かけ、とりわけラベルや数値の offset を最適化するには、十分時間をかけて試行錯誤する必要がある。
    FINDSTR 実行後の ERRORLEVEL に応じた条件分岐
    Windows に標準で備わっているコマンドプロンプトはシェルに比べると非力だが、UNIX 系コマンドさえ導入すれば、そこそこ便利に使える。バッチファイルにおいて、文字列がテキストファイル中に存在するか否かで後続処理を変えるとき重宝する構文をここで紹介したい。

    コマンドプロンプト用文字列検索コマンド FINDSTR は UNIX 標準の grep/egrep の機能を劣化させたようなコマンドであり、単純な正規表現しか使えない。FINDSTR は文字列を含む行を出力するとともに、文字列が見つかったら ERRORLEVEL=0、見つからなかったら ERRORLEVEL=1 という復帰コードを返す。しかし文字列が存在しようがしまいがエラーとは言い難く、文字列の有無を知るために %ERRORLEVEL% の値を調べるのは心理的抵抗がある。たとえば RETURNCODE とすべきではないか。いずれにせよ、長くて鬱陶しい復帰コード名だ。

    FINDSTR と &&(論理積)または ||(論理和)とを組み合わせると、IF, ELSE, ELSE IF, %ERRORLEVEL% が不要となり、バッチファイル中の検索・条件分岐部分が実にすっきりする。たとえば、test.txt というテキストファイル中に
    1. 正規表現 (Regular expression) の文字列 reg_string1 が存在する、
    2. さもなければ正規表現の文字列 reg_string2 が存在する、
    3. いずれも存在しない、
    という三通りの検索結果に応じて後続処理を切り換えるには、次のようにブロック化する:

    FINDSTR /R /C:"reg_string1" test.txt >NUL 2>&1 && (
      .....
    ) || FINDSTR /R /C:"reg_string2" test.txt >NUL 2>&1 && (
      .....
    ) || (
      .....
    )

    /R は正規表現の文字列を探索するオプションである。FINDSTR は簡易正規表現しか扱えないという手抜き仕様に留まっているが、通常の目的には十分だろう。/C: は文字列中の空白が文字列同士の区切り文字とみなされないようにするオプションであり、">NUL 2>&1" はコマンドプロンプト窓が散らかるのを防ぐための呪文である。&& に続く (.....) ブロック内には検索に成功した場合 (ERRORLEVEL = 0)、|| に続く (.....) ブロック内にはヒットしなかった場合 (ERRORLEVEL = 1) の処理を記述する。ブロックの始まりと終わりを意味する "(" と ")" は必ずペアになっていなければならない。

    reg_string1 が test.txt 中に存在しないときは、単に

    FINDSTR /R /C:"reg_string1" test.txt >NUL 2>&1 || (
      .....
    )

    とするだけで済む。

    通常の文字列 "string" を探索する際には、/R の代わりに /L を指定するか、

    FIND "string" test.txt

    を使う。オプション不要なところがありがたい。

    コマンド実行後の && と || による条件分岐は広く認知されているとは言い難く、ネット情報はほとんど見かけない。頻用されてしかるべき便利な表現である。

    なお FINDSTR と FIND では原則として Shift_JIS コードのファイルを処理するためのコマンドだが、ASCII 文字の検索に限定するならば、EUC や UTF-8 コードのファイルも扱えるようだ。

    Windows 用 RIETAN-FP・VENUS 統合支援環境には、テキストファイル中に特定の文字列が含まれているか否かを調べてから後続処理を条件分岐するバッチファイルがいくつか含まれている。従来は FOR 文の実行結果を環境変数に代入し、その値を IF 文で参照するという、ややこしい手続きを踏んでいた。遅延展開せざるを得ない可能性がある環境変数の増加はできるだけ控えたい。

    たとえば RIETAN.bat 中では、あらかじめ "MEP = 1" が hoge.lst 中に存在するか否かを

    FOR /F "TOKENS=3 USEBACKQ" %%T IN (`FINDSTR /R /C:"^ *MEP = 1$" "%SAMPLE%.lst"`) DO SET MEP=%%T

    という長い FOR 文を通じて変数 MEP に代入した後、

    IF "%MEP%"=="1" (
      .....
    )

    という IF ブロックを実行するかどうかを判定していた。意味が理解しにくい上、冗長だ。同等の条件分岐を

    FINDSTR /R /C:"^ *MEP = 1$" %SAMPLE%.lst >NUL 2>&1 && (
      .....
    )

    という簡潔な命令で実行できるのは感動的ですらある。次期配付ファイルでは、FINDSTR または FIBD コマンドでストレートに場合分けするよう全面的に書き換える予定である。
    OS X・Windows 用 TeX Live のインストール
    最近、結晶構造解析の結果を文書化するための CIF・TeX 関連ユーティリティー cif2pdf, E2J, refln を実行するための Jedit X秀丸用のマクロを作成した。 いずれ公開する予定だが、cif2pdf と E2J を実行するには、TeX Live が必要不可欠である。ここで OS X と Windows 上で TeX 文書をタイプセットする環境を整えるための情報を提供しておく。

    OS X 用 TeX Live は MacTeX の Web ページから MacTeX.pkg をダウンロードし、それをダブルクリックしてインストールする。OS X El Capitan の場合 /Library/TeX/texbin にパスを通せば、TeX 関連プログラムが使えるようになる。パッケージの更新法や TeXShop の設定については、「Mac 用 TeX による英文・和文のタイプセット」を参照されたい。

    Windows 用 TeX Live は CTAN から install-tl-windows.exe をダウンロードし、右クリックしてから「管理者権限として実行」を選べば、perl.exe が裏で動いてインストールされる。TeX Live YYYY("YYYY" は "2016" のような年号を表す)の場合、システム変数 Path に C:¥texlive¥YYYY¥bin¥win32 が追加される。TeX 関連実行形式プログラムはそのフォルダーに入っている。Windows 10の場合、パッケージは次の手順で更新する:

    1. スタートボタンを左クリックしてから「すべてのプログラム」上にカーソルを移動する。
    2. Windows システムツール」を左クリックする。
    3. コマンド プロンプトを右クリックし、「管理者として実行」を選ぶ。
    4. 「このアプリが PC に変更を加えることを許可しますか?」という問いに対し [はい] をクリックする。
    5. C:¥texlive¥YYYY¥bin¥win32 フォルダーに cd する。
    6. "tlmgr update --self --all" と入力して全パッケージを更新する。
    7. "exit" と入力してコマンド プロンプトを終了する。
    ORFFE による結合角と二面角の計算
    RIETAN-FP の入力ファイル hoge.ins のひな形では、幾何学的パラメーターを計算するためのプログラム ORFFE 用の結合距離計算命令 201 と結合角計算命令 002 についてごく簡単に説明している。通常は非対称単位内の原子を対象に結合距離を計算するための 201 命令だけを (2I5, 15X, I5) という書式で入力すればよい。三つの整数、すなわち

    Col. 1–5: 201
    Col. 6–7: 非対称単位内の原子の数(独立サイトの数)
    Col. 26–30: 10×最大結合距離/Å

    はいずれも右詰で入力する。

    RIETAN-FP・VENUS システムに同梱した ORFFE (Busing, Martin & Levy, 1964) では、ORFFE を二回続けて実行すると結合距離と結合角が次の2段階で計算される:

    1回目: 201 命令を実行した後、特定サイトの結合をすべて組み合わせた 002 命令が hoge.xyz の末尾に追加される。
    2回目: 201 命令を再実行した後、002 命令により結合角が計算される(RIETAN-FP_manual.pdf, Appendix D.3を見よ)。

    hoge.ins 中に 002 命令を入力せず ORFFE に任せてしまえば、時間の節約になる上、入力ミスを犯さずに済む。ただし、かなり多くの結合角が出力され、hoge.dst が膨れ上がるのを覚悟してほしい。

    ORFFE の出力ファイル hoge.dst に記されているように、ORFFE では三つの整数 A, S, C により原子の種類と位置を特定する
    An atom is designated by a pair of integer numbers in parentheses (A,1000*C+S).
    A is the number of the atom in the list of atomic parameters.
    S is the number of the symmetry information to be applied, and C defines the unit-cell translations
    hoge.dst に A, S, C の一覧表が出力される。

    ORFFE のマニュアルでは、二面角 (dihedral angle) を
    Angle between normals to planes defined by atoms 1, 2 and 3, and atoms 4, 5 and 6, respectively. If right-hand fingers are curved so that they can pass successively through atoms 1, 2 and 3 then the thumb is in direction of normal. Sign of angle will be positive if this normal makes an acute angle with vector from atoms 4, 5, and 6.
    と定義している。hoge.dst には "Dihedral angle between planes each defined by three atoms" と出力される。

    二面角は 003 命令で計算する。hoge.ins には、それら6原子の A と 1000*C+S を原子1, 2, 3, 4, 5, 6の順に5桁ずつ右詰で入力する:

    Col.   1–  5: 003
    Col.   6–10: A1
    Col. 11–15: 1000*C1+S1
    Col. 16–20: A2
    Col. 21–25: 1000*C2+S2
    Col. 26–30: A3
    Col. 31–35: 1000*C3+S3
    Col. 36–40: A4
    Col. 41–45: 1000*C4+S4
    Col. 46–50: A5
    Col. 51–55: 1000*C5+S5
    Col. 56–60: A6
    Col. 61–65: 1000*C6+S6

    VESTA の Utilities メニューで Geometrical Parameters を選んで、*.ffe 中の結合距離と結合角を結晶模型と対応させれば、6原子の A と 1000*C+S を容易に知ることができる。

    ORFFE は分散共分散行列の非対角項まで含めて幾何学的パラメーターの標準不確かさ (standard uncertainty) を計算するため、論文や報告書には ORFFE で計算した値を報告することが望ましい。上述の三命令で計算した値を報告すれば十分だろう。

    (C) 2016 ブログ JUGEM Some Rights Reserved.