過去記事 Inkscape で eps をきれいに出力する方法 で紹介している方法などで eps 画像を作って LaTeX で読み込むと,何かしらのトラブルが起こりがちだ.dvipdfmx で PDF 化したときに画像が表示されないこともある.
Inclusion of large eps files with dvipdfm によると,dvipdfm(x) における eps の読み込みには問題があるから,画像を PDF 化して読み込むとよい,と書いてある.これからはそうしよう.
エクスプローラでファイル操作中に,今いるディレクトリでCygwinを開きたい場合がある.nkf で文字コードを変換したりとかスクリプトを適用したりとかで. いくつかスクリプトを書けばできる.
ということを今まで知らずに使ってた.User Interface - OpenCV v2.4.2 documentation#waitKey によると:
This function is the only method in HighGUI that can fetch and handle events, so it needs to be called periodically for normal event processing ...
C++ でメンバ関数を部分特殊化しようとすると(例えばテンプレートクラスのテンプレートメンバ関数を,ある特定の型について特殊化する),コンパイルエラーとなる.gcc なら "error: invalid use of incomplete type" だとか, "error: enclosing class templates are not explicitly specialized" などのエラーが発生する.しかし,現実には,部分特殊化したいことも多い.そこで,やや強引な解決策を実装してみた.
C++ と liboctave でPCAを適用するプログラムについて.固有値分解を使う方法と特異値分解を使う方法を紹介する.
gnuplot のようなプログラムには,パイプを使ってほかのプログラムからデータを送ることができる.std::cout などのストリームクラスのように,パイプストリームクラスを作成すると便利そうなので,実装してみた.
ふと気になって,C++のプリプロセッサ・ディレクティブ (Preprocessing directives) を調べてみた.ソースは ISO/IEC 14882:1998 (E).gcc/g++ で何気なく使っていた #warning は標準じゃないことを知った.
PHP5.4 をインストールして,PukiWiki を表示させると,
ウェブサイトでエラーが発生しました。 ウェブサイトがメンテナンスのために停止しているか、正しく設定されていない可能性があります。 HTTP エラー 500(Internal Server Error): サーバーによるリクエストの実行中に、予期しない状況が発生しました。
みたいなエラーが発生する.PukiWiki 1.5 だと問題なく動作する.もしくはPHP5.3 にダウングレードしてもよい.
過去記事 もう eps でトラブらない...LaTeX で PDF を張り付ける では,PDFをLaTeXに貼り付ける方法を紹介したが,学会によっては画像ファイルの形式として PDF を許可していない場合がある.また,dvips で変換した PS ファイルが表示できなかったりするトラブルも発生した.やはり,PS/EPS の需要は大きい,ということで,acroread を使って PDF を PS に変換する小技を紹介する.
なお,今回紹介する方法は,Inkscape で eps をきれいに出力する方法で解決できなかった,xdvi で表示時に画像がずれて見える問題も解決する...かもしれない.
よく忘れるので防備録的な感じでメモ.
LaTeX で PNG や JPEG を単純に読み込むと,no BoundingBox とかエラーが出るので,バウンディングボックスを指定してやる必要がある.そのためのコマンドに ebb とか extractbb があるが,extractbb を使おう(解像度が高い).ファイルに出力すると,ファイルが増えて邪魔なので,extractbb に -O オプションをつけて標準出力に出力して,includegraphics の bb オプションでバウンディングボックスを指定する.
シミュレーションなどでデータをファイルに出力する際,リアルタイムにデータをプロットしたい場合がある.gnuplot を popen し,自動的に replot によって描画を更新する python スクリプトを作ってみた.
ここ最近の octave / liboctave のインストール方法についてメモ.(Debian / Ubuntu)
(追記@Feb.06,2010)共有ライブラリの指定について.
liboctave 利用時のコンパイルを「遅い」と感じたことはないだろうか.ここでは liboctave におけるヘッダファイルの依存関係を把握することにより,コンパイルを高速化する方法を検討する.
std::vector<T>::back() を使うと,末尾の要素の参照を取得できる.これは普通は,T&型だ.ところが,T=bool に限っては,「std::_Bit_reference」型なのだ(少なくとも g++ の場合).
通常,bool を関数の引数として渡すとき,わざわざ参照渡ししようとは思わないから(別に効率がよくなるわけではない),意識する必要はないのだが,テンプレート関数やクラスを作る場合には,知っておかないと理解不能なエラーに直面することがある.なので,忘備録も兼ねてメモ.
IEEE の論文を LaTeX で書くときに,bibtex のスタイルファイルとして IEEEtran.bst を使う.このスタイルファイルを使うと,bibtex のソースに url = {www.xxx.com/xxx.pdf} のような項目を書いている場合(ウェブに掲載されているURL),論文の References に [Online]. Available: www.xxx.com/xxx.pdf などと書かれてしまう.文章量が増えるし,著作権的にアレなURLを参照しているとモラルに欠けるし,消したい.その方法を紹介(IEEEtran.bst のソース読めばすぐわかるが).
過去記事「テンプレートの部分特殊化を利用した間接参照型推定」では,テンプレートのテンプレートの部分特殊化 (Wikipedia)を使ってポインタ型やイテレータ型からそれを間接参照した型(ポインタを取った型)を推定する方法を紹介した.この方法を使って,例えば和を求めるテンプレート関数の型引数をひとつ減らせられることを示した.しかしこの方法だけだと, const double 型の配列の要素を足し合わせようとしたときコンパイルエラーとなる.これを解決するための,ある型から const を除去した型を推定する方法を紹介する.ここで紹介するテクニックは,高度に抽象化されたテンプレート関数やテンプレートクラスを作るときに必要となる.ついでに, boost C++ ライブラリの remove_const の実装を読んでみよう.…正直,彼ら(boostの実装者たち)は変態さんだと思います.
手軽に使えるスクリーンキャストツールが欲しかった.スクリーンキャストというのは,画面を数10フレームごとにキャプチャし,動画として保存すること(→ Wikipedia).これがあるとプレゼンとかで便利. recordMyDesktop というツールが,個人的にベストだったので紹介.
例えば,ディレクトリ /tmp/hoge に print.ps というファイルが作成されたら,それを自動的に印刷するようにしたい場合,ファイル作成イベントを監視する必要がある. inotifywait というコマンドを使えばそれが簡単にできるので,紹介する.