Sublime Text で Ruby のコードを書いていて,自動整形が欲しくなり BeautifyRuby プラグインをインストールしたものの "check your ruby interpreter settings” エラーが出て困ったので対策をメモ.
cygwin で Ruby をインストールしていてバージョンが 1.9 以上という場合に限ると思いますが Preferences → Package Settings → BeautifyRuby → Setting で出てくる設定ファイルで "ruby" の行を
"ruby": "C:\\cygwin64\\bin\\ruby -Eutf-8",
とすると動きました.マニュアルには Windows では "ruby" : "ruby" と設定するように書いてありますが,日本語を含んでいるファイルを整形した場合
"invalid byte sequence in Windows-31J (ArgumentError)”
というエラーが発生しているようだったので -Eutf-8 オプションを ruby 実行時に与えてみたところ動くようになったという感じです.
2013年9月5日木曜日
2013年8月29日木曜日
Windows の TeX Live 2013 でヒラギノフォントを埋め込む方法
学会の投稿論文ではしばしばフォントの埋め込みを指示されることがあります.これは結構な頭痛の種でしたが,TeX Live 2013 からは kanji-config-upd というコマンドが用意されていて容易く埋め込み設定を行うことができるようになりました.
Windowsの場合,
kanji-config-updmap status
というコマンドで利用可能な選択肢を確認すると,インストールされている Adobe 製ソフトウェアに依存しますが
CURRENT family : noEmbed
Standby family : ipa
Standby family : ipaex
Standby family : kozuka
Standby family : kozuka-pr6n
Standby family : ms
という感じの結果が得られると思います.
この中でライセンス的に確実に安全な選択肢はIPAフォントですので,見た目に拘らないならこれを使うべきです.
小塚フォントは Adobe のソフトウェアと一緒にインストールされていることが多いですが,フォントデータが再利用可能な形で配布してはいけないことになっているので,PDFに埋め込んで配布すると咎められる可能性があると思います.
MSゴシック/MS明朝に関してはフォントの埋め込み可能フラグが立っているので埋め込みを行って良いように思われますが,埋め込んだPDFの利用に関する明確な許諾範囲がネットではみつかりませんでした.また,見た目に関しても Macに標準で付属しているヒラギノフォントに比べるとちょっといけてない気がします.
Windowsの場合,
kanji-config-updmap status
というコマンドで利用可能な選択肢を確認すると,インストールされている Adobe 製ソフトウェアに依存しますが
CURRENT family : noEmbed
Standby family : ipa
Standby family : ipaex
Standby family : kozuka
Standby family : kozuka-pr6n
Standby family : ms
という感じの結果が得られると思います.
この中でライセンス的に確実に安全な選択肢はIPAフォントですので,見た目に拘らないならこれを使うべきです.
小塚フォントは Adobe のソフトウェアと一緒にインストールされていることが多いですが,フォントデータが再利用可能な形で配布してはいけないことになっているので,PDFに埋め込んで配布すると咎められる可能性があると思います.
MSゴシック/MS明朝に関してはフォントの埋め込み可能フラグが立っているので埋め込みを行って良いように思われますが,埋め込んだPDFの利用に関する明確な許諾範囲がネットではみつかりませんでした.また,見た目に関しても Macに標準で付属しているヒラギノフォントに比べるとちょっといけてない気がします.
埋め込み可能なヒラギノフォントの入手
というわけで,たいへんニッチな話題ですが,Windowsでヒラギノフォントを埋め込んだPDFを作る方法についてメモしておきます.
まず,ヒラギノフォントの入手方法ですが,僕は「一太郎2012承 プレミアム版」のバンドル品として入手しました.一太郎以外のソフトでも利用可能で,商用・非商用を問わずサブセットであれば埋め込んでよいと明記されているので安心です.
通常の手段で購入する場合はモリサワのセレクトパックなどで購入することになると思いますが,その場合は結構なお値段(Macより高いかも?)になるので 基本7書体パック の方を amazon とかで買ったほうが費用対効果が高いかもしれません.なお,Macに付属のフォントをWindowsにコピーすることは禁じられているはずなので注意してください.
ヒラギノフォントを利用可能にする設定
TeX Live 2013 にはヒラギノフォント用の設定が含まれていますが,Mac付属のものを前提としたものであり,一太郎バンドルのものを扱うには設定が必要です.
具体的にはフォントファイルのファイル名が異なるので,そのままでは認識してくれません.
この問題を解消するためには,c:\texlive\texmf-local\fonts\opentype\public\hiragino というフォルダを作成し,管理者権限でコマンドプロンプトを起動して以下のようなコマンドを入力します.
cd c:\texlive\texmf-local\fonts\opentype\public\hiragino
mklink HiraKakuProN-W3.otf "C:\Windows\Fonts\ヒラギノ角ゴ ProN W3.OTF"
mklink HiraKakuProN-W6.otf "C:\Windows\Fonts\ヒラギノ角ゴ ProN W6.OTF"
mklink HiraKakuStdN-W8.otf "C:\Windows\Fonts\ヒラギノ角ゴ StdN W8.OTF""
mklink HiraMaruProN-W4.otf "C:\Windows\Fonts\ヒラギノ丸ゴ StdN W4.OTF"
mklink HiraMinProN-W3.otf "C:\Windows\Fonts\ヒラギノ明朝 ProN W3.OTF"
mklink HiraMinProN-W6.otf "C:\Windows\Fonts\ヒラギノ明朝 ProN W6.OTF"
これによって TeX が認識するシンボリックリンクが作成されます.(ちなみに mklink コマンドが存在するのは Vista 以降の Windows です.)
その後,管理者権限ではない TeX Live のコマンドプロンプトで
mktexlsr
kanji-config-updmap status
kanji-config-updmap status
と入力すると
CURRENT family : noEmbed
Standby family : hiragino-pron
Standby family : ipa
Standby family : ipaex
Standby family : kozuka
Standby family : kozuka-pr6n
Standby family : ms
のように表示されているはずなので
kanji-config-updmap hiragino-pron
と入力すると,ヒラギノフォントが埋め込まれるようになります.
2013年8月17日土曜日
Android タブレットで倒立振子
突然ですが,諸般の事情で Android タブレット(Nexus 7)を制御器としたセグウェイっぽい自走式倒立振子を作りました.忘れないうちに製作の要点をメモしておきます.後日気が向いたときに詳細な記事を書くかもしれません.
Android タブレットは内蔵するジャイロセンサで角速度を計測し,モータに印加する制御入力の計算を行います.腕のように見えるのはレゴブロックで作られたバンパーで転倒時と机からの落下時に液晶画面を守ります.
IOIO-OTG と HUB-ee Wheel による製作容易なハードウェア
ハードウェア的に特に重要な部品は IOIO-OTG と HUB-ee Wheel です.
上の写真が IOIO-OTG で,これを介して Android からモータを駆動することができます. いわゆる ADK と似たような機能を持ちますが小型であることをはじめとして,様々な面で扱いやすいと思います.
上の写真は HUB-ee Wheel で,一見タイヤに見えますが中にモータ・モータドライバ・エンコーダを内蔵している便利部品です.エンコーダがかなり粗く(4逓倍で128カウント/回転)カウンタを内蔵していない点が少し残念ですが,レゴブロックと簡単に結合でき,ハードウェアの製作を飛躍的に簡単にしてくれます.
また,今回は適当な Nexus 7 専用ケースに両面テープで電池などの部品とレゴブロック2本を接着し,あとはレゴブロックを嵌め合わせることで HUB-ee Wheels を固定し,バンパーなどを構築しています.
制御器の連続時間実装
ソフトウェア,つまり制御理論の面でやや特殊なのは制御器の連続時間実装を行っている点です.というのも,Android は非リアルタイムOSで一定周期でのジャイロセンサによる計測や制御入力の更新が困難だからです.実際 IOIOLib Application Framework で何も考えずに制御ループを回したときの実行間隔は以下のようになります.
概ね 5 ms 程度の間隔でループが回っているものの 20 ms 以上の間隔になることもしばしばあり,離散時間システムとしての実装には多少無理があることがわかります.
倒立振子のモデリングと制御器の設計は特に特殊なところはありません.
今後の課題
現状では IOIO-OTG がエンコーダのカウントをサポートしておらず,Androidのソフトウェアによる計数を行っているので,高速に移動したり制御周期が長くなったりするとエンコーダの取りこぼしが発生してしまいます.本来なら Android 端末を使った自走式倒立振子のメリットとして,カメラやネットワークを簡単に利用できることが挙げられるべきですが,この問題のために制御周期への影響が大きいと考えられるこれらの機能が使いにくいのが残念なところです.
本格的に遊ぶためにはエンコーダ用のカウンタ回路を IOIO-OTG の外部に設けるべきであると考えられます.
2013年3月13日水曜日
使ってはいけない LaTeX のコマンド・パッケージ・作法
コメントで頂いた情報を「2. 数式関係」に,使ってはいけないパッケージの自動チェックについての項を末尾に追記しました.(2013/10/12)
制御関係の学会では LaTeX というソフトで論文を書きます.LaTeX の歴史は古く,現代の水準で考えると設計し直すべきと思う部分も多々ありますが,世間で広く使われている Word の生産性が論文を書くという作業において今ひとつという事情も手伝ってか,現在に至るまでデファクトスタンダードの座を維持しています.
Wikipedia の記事によると $\LaTeX2e$ がリリースされたのは1993年,つまり20年前で,これ以降様々なパッケージによる拡張が行われています.現在(2013/03/11) CTAN には 4451 個 のパッケージが登録されているそうです.また,Web上にも色々なテクニックが蓄積され,大抵のことを実現する方法は検索すれば出てくる状況になっています.
しかし,その中には互換性の問題やより優れた代替が存在するために現在では使うべきでないものも相当数あります.
にそれらに関する情報はあるものの(これらも既に5年以上前の情報ですが…)日本語の情報が少ないせいか使うべきでないパッケージやコマンドを使っている学生さんをよく見かけるので,重要そうなものを,研究室内あるある順でまとめておきます.以下の内容はほとんど上記の記事の翻訳+まとめ+αになっています.
制御関係の学会では LaTeX というソフトで論文を書きます.LaTeX の歴史は古く,現代の水準で考えると設計し直すべきと思う部分も多々ありますが,世間で広く使われている Word の生産性が論文を書くという作業において今ひとつという事情も手伝ってか,現在に至るまでデファクトスタンダードの座を維持しています.
Wikipedia の記事によると $\LaTeX2e$ がリリースされたのは1993年,つまり20年前で,これ以降様々なパッケージによる拡張が行われています.現在(2013/03/11) CTAN には 4451 個 のパッケージが登録されているそうです.また,Web上にも色々なテクニックが蓄積され,大抵のことを実現する方法は検索すれば出てくる状況になっています.
しかし,その中には互換性の問題やより優れた代替が存在するために現在では使うべきでないものも相当数あります.
にそれらに関する情報はあるものの(これらも既に5年以上前の情報ですが…)日本語の情報が少ないせいか使うべきでないパッケージやコマンドを使っている学生さんをよく見かけるので,重要そうなものを,研究室内あるある順でまとめておきます.以下の内容はほとんど上記の記事の翻訳+まとめ+αになっています.
2013年2月7日木曜日
MATLAB で figure にフォーカスを奪われない方法
MATLAB で figure(2) のように figure 関数を実行すると Figure 2 のウィンドウにフォーカスが移行し,キーボード操作は Figure 2 のウィンドウが受け付けるようになります.若干再現性に欠けるところもありますが,仕様ではそうなっているようです.
通常はこれで問題ないのですが,長時間の計算を行っていて途中経過を図で表示している場合,別の作業をしている最中に邪魔をされて不便な場合があります.
この場合
通常はこれで問題ないのですが,長時間の計算を行っていて途中経過を図で表示している場合,別の作業をしている最中に邪魔をされて不便な場合があります.
この場合
figure(2)のかわりに
set(0,'CurrentFigure',2)とすれば Figure 2 が描画の対象になりますがキーボードのフォーカスは移動しません. ただし, Figure 2 が存在しない場合エラーになるので,うっかりウインドウを消してしまったときのために
try set(0,'CurrentFigure',figidx) catch figure(figidx); endとしておくとより安全だと思います.
2013年1月29日火曜日
Sublime Text 2 で LaTeX on Windows
2013/4/14 コメントでいただいた情報を追記
Sublime Text 2 とは?
Sublime Text 2 は最近巷で流行っている主にプログラムを書くためのエディターです.
僕はここ10年の殆どの期間 TeX 文書の編集に Emacs を利用しており,年に一度くらいの頻度で他のエディタを試しては Emacs に帰ってくるというのを繰り返していたのですが.Sublime Text 2 は大変使い心地が良く,今後も使い続けようと思うので TeX 編集環境の設定も含むインストール手順,その他もろもろをメモしておきます.
登録:
投稿 (Atom)