2011年3月1日火曜日

PDF を生成したとき txfonts を使った TeX 文書でフォントが変わる問題の対処法メモ

txfonts.sty は TeX で Times 風のフォントを使うパッケージで良く用いられています.

このパッケージを Windows の TeXインストーラ3 な環境で使ったときに dviout では
のように出力されている数式が dvipdfmx 等で PDF に変換したあと
のように変化して添え字や他の記号との位置関係がおかしくなることがあります.この現象は PDF 生成時に Times の代替フォントとして Times New Roman が使われ,字形が微妙に変化するために起こるそうです. dviout で使われている ghostscript 付属の Times 代替フォントを PDF でも同様に用いたい場合,
(TeXのインストールディレクトリ)\share\texmf\dvipdfmx\config\dvipdfmx.cfg
の末尾に
f  txr2.map
という行を追加すれば PDF でも dviout と同様の出力が得られます.

2010年11月16日火曜日

TeXで複数のAppendixを出力する方法

本のような長い文書の場合,章ごとに付録を付けたい場合があります.標準の TeX でこれを実行するのは面倒ですが,便利なスタイルファイルがあることを知ったのでメモしておきます.
必要なスタイルファイルは appendix.sty で


からパッケージをダウンロードできます.コンパイル済みではないので,texmf の配下にファイルを配置して
$ latex appendix.ins
$ mktexlsr
といったコマンドを実行する必要があります.

典型的な使い方は
\usepackage[titletoc,title]{appendix}
% :
\chapter{My Idea} % 1つめの章
% :
\section{Analysis}
% :

\begin{subappendices} % 1つめの章の付録
\section{Proofs}
% :
\end{subappendices} % ここまでが付録

\chapter{Other Idea}  % 次の章
% :

のようになり,この場合出力される文書・目次は
1 My Idea
   1.1 Analysis
   Appendix 1.A Proofs
2 Other Idea
のような構造になります.他にも
\begin{appendices}
% この中身は章・節の配下ではなく文書直下の付録になる(多分)
\end{appendices}
といった環境や,様々なオプションがあるので詳しくはパッケージについてくるドキュメントを参照してください.

2010年11月7日日曜日

MATLABでサイズを指定してイメージファイルを出力する方法

MATLABの図を画像ファイルとして出力する場合,デフォルトでは印刷時と同様に適当なサイズの画像が保存されます.

しかし,プレゼン用画像の作成などでサイズを1024×768といった特別な値にしたい場合がしばしばあります.毎回やりかたを忘れて苦労するので,ここに方法をメモしておきます.


figure の PaperPositionMode を auto に設定し,print コマンドで '-r0' を付けるのがポイントのようです.ファイルを出力する際に幅が1ピクセル増える現象が発生しますが,バグなのか仕様なのか常に再現するのかもよく調べていません.バージョンによって挙動が異なる可能性もありますので注意してください.

2010年10月26日火曜日

RenameSheet - Excelでファイル名一括変更

ファイル名を Excel のシート上で操作してリネームすることが出来ます.Excel のスプレッドシートなので
  • 連番を振る
  • 連番を逆にする
  • 作成日などをファイル名に加える
  • 作成した順に連番を振る
  • etc...
といった操作がいとも簡単にできることが特長です.下は連番の形式を変更している動画です.




次の動画はファイルの最終更新日を元にファイル名をリネームしている様子です.




このように高度な規則に基づいたリネームも Excel を使えば楽々です.

  • 逆再生動画の作成
  • デジカメ写真などの整理・連番化・日付によるラベリング

等で需要がある気がしたので一応ダウンロードできるようにしておきます.

このソフトは Excel 2010 のマクロ(VBA)で作ってあります.Excel でマクロを書くのは初めてなのでよくわかりませんが,他環境では動作しないかもしれません.
また,このソフトの使用によって生じた結果に関して一切の責任を負うことは出来ません.一応ファイルを操作するソフトなので,万全のバックアップ・テストを行い,自己責任でご利用ください.

反応できるかはわかりませんが,要望質問などがありましたらコメント欄かメールでお願いいたします.

2010年10月10日日曜日

こんなポータブルDVDドライブが欲しい

僕が参加する学会の資料はCD配布の場合が多いのですが,CDドライブがあるノートPCやポータブルCDドライブを用意するのは結構かさばります.CDドライブはCDのサイズより小さくならないのがよろしくないですね.

そこで,こんなポータブルDVDドライブがあったらいいなーというのを考えてみました.何かのはずみで材料が手に入ったら作りたいので,ここに記録しておきます.

こんな感じで回転中のメディアが露出してるドライブは,近未来な設定の漫画とかでは出てきますが,レーザーや回転部の危険があるせいか実際の製品では見ませんね.ミスでレーザーを見ないようにするカバーと,そこそこ安定した足は実用上必要なんじゃないかなぁ…

あと,絵では画力の関係で省略していますが,背面と側面の足は収納時にはゴミがヘッドに入るのを塞ぐような構造にすると良いと思います.

でもそのうち学会の配付資料もネット配布がメインになって,こんな悩みはなくなるんでしょうね.

2010年7月16日金曜日

MATLAB MEXでCUDAを使う

GPU 関連のプログラミングでは大抵、C言語+αを使ってプログラムを書くみたいですが、データの処理や結果の可視化は普段使っている MATLAB のほうが楽です。

そこで、 CUDA な MEXファイルを作って MATLAB で使う方法を試してみました。
結構簡単ですが、ハマるところがいくつかあったので記録を残しておきます。

現在僕が使っている環境は

  • Windows 7 (64bit)
  • MATLAB 2010a (64bit)
  • CUDA 3.1 (64bit)
  • Visual Studio 2008 Professional
なので、参考にするときは注意してください。以下順にハマったところを挙げていきます。


64bitのコンパイラをインストールする

これはCUDAに限りませんが、mexファイルのコンパイルにVisual C++を使う際、64bitの環境では64bit用のコンパイラをインストールしておく必要があります。VS2008では64bit用のコンパイラはデフォルトではインストールされません。また、Express Edition には64bit用のコンパイラが含まれていないようです。

最新版のMATLAB plug-in for CUDAを入手する

実は一番ハマったのがここです(笑)
このページで右側のフォームに住所氏名などなどを記入するとダウンロードできるのが最新版です。
こっちのページでダウンロードできるのは古いバージョンです。(古いMATLABだとこっちを使うべきなのかもしれません。)最初新しいバージョンは非公開と勘違いしていました・・・

ちなみに日本語版のサイトには新しいバージョンへのリンクすら存在してないようです。

nvmex.mを修正する

MATLAB plug-in for CUDA と一緒に入手できるガイドラインにも書いてありますが、使用環境に応じてnvmex.mを修正する必要があります。ぼくの環境では
Host_Compiler_Location = '-ccbin "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin"';
としました。ソースファイルで変更しろと書かれているのはここだけですが、実際にはあといくつか修正が必要で、下のほうの nvccCommandLine を作る部分で、インクルードファイルのパスを指定している部分にダブルクォーテーションが抜けてるバグがあります。Linux環境では問題が発生しなくて見逃したのでしょうか?あと、ついでにCUDAのサンプルでよく使われているcutilを使うためのヘッダファイルのパスも追加しておきます。
    ' -I"' matlabroot '\extern\include" ' ...
    ' -I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\common\inc"'...
これに対応してリンカのオプションも mexCommandLine の作成の部分に追加しておきます。
mexCommandLine = ['mex (''' filename '.o' ''', ''' '-L' CUDA_LIB_Location ''', ''-LC:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\common\lib''' ', ''-lcudart'', ' '''-lcutil64'')'];
あと、cutilを使っているプログラムを実行する際には cutil64.dll をパスが通っている場所に置かなければならないので注意してください。


とりあえず、ここまでの修正でサンプルが動くところまではいけたはずですが、
何か思い出したことがあったらまた追記します。

2010年6月20日日曜日

英語プレゼン練習支援ツール

国際会議等で英語の発表をすることがしばしばあります.
僕は英語が苦手なので,毎回台本を作って練習していますが,発音をいちいち辞書引いて調べたり覚えたりするのが大変なので,自分用に英語プレゼンテーション練習支援ツールを作りました.
興味のある人は使ってみてください.

ppt2ipod


機能
  • PowerPoint のノート部分を Windows の音声合成機能で読み上げた wav ファイルを出力します.発音の参考になります.
  • PowerPoint のスライドを画像形式で出力します.iPodや携帯に入れておくと,どこでも発表の練習が出来ます.
  • ノート部分をテキストファイルに出力します.Mac で音声合成したい人向けです.

スクリーンショット



システムの必要用件


  • .NET Framework 4.0
    大半の人は未インストールのはずなので Microsoft のページからインストールしてください.「.NET Framework 4 Client Profile」が最低限必要です.
  • 英語がしゃべれる音声合成エンジン
    Windows 7 / Vista には標準で入ってました.XPは未確認ですが,7 / Vistaより流暢さで劣るものの入っているらしいです.
  • PowerPoint
    対象となるプレゼンテーションファイルを開けるPowerPointがインストールされている必要があります. PowerPoint 2007 / 2010 で動作確認しています.

ダウンロード
  • ppt2ipod.exe
    実行ファイルです.インストール不要なので,適当な場所に置いて実行してください.
  • test.ppt
    とりあえず試してみたいけど,台本付きの PowerPoint ファイルを作るのが面倒な人のために置いておきます.

その他コメント

  • 出力されたスライド画像とスピーチを iPod と同期しておくと電車や飛行機の中での練習・暗記に便利です.僕は iPod touch に入れてますが,スライド画像の表示が速いので不意に研究の説明を求められたときなんかにも便利です.
  • Mac の音声合成のほうが流暢な気がするので,Mac持ってる人はそっちで音声合成した方が良いとおもいます.その際に便利なテキストファイルもscriptフォルダに出力しています.
  • このソフトは無保証です.利用は自由ですが自己責任でお願いします.
  • ご意見・ご要望・質問などはこの記事にコメントしていただけると助かります.