2015/05/23

markdown->latexの変換をしたときに、表のキャプションを上にもってくる

最近、markdownで報告書を記述して、pandocを用いて一旦latexに変換し、そこからpdfにするということをしています。

このとき、markdownで記述した表はlatexのlongtableに変換されるようなのですが、表のキャプションが下に来てしまいます。表のキャプションは上に書きたいので、これでは困るわけです。

これを
こうしたい

始めの状態

記述したMarkdownはこんな感じです。
# 表 #################################

表

Table:例

|A        |B           |C           |D            |
|:--------|:-----------|:-----------|:------------|
|11111    |222         |33          |4            |
|5        |6           |7           |8            |
変換すると、キャプションが\end{longtable}の直前にきます。
\section{表}\label{ux8868}

表

\begin{longtable}[c]{@{}llll@{}}
\toprule\addlinespace
A & B & C & D
\\\addlinespace
\midrule\endhead
11111 & 222 & 33 & 4
\\\addlinespace
5 & 6 & 7 & 8
\\\addlinespace
\bottomrule
\addlinespace
\caption{例}
\end{longtable}

下に持ってくる

pandocで変換された後のTeXファイルに手を加えてなんとかしました。sedとかに慣れてないので、Pythonで作っています。

Makefileに書いて使っています。 Makefileの一部
convertmd: $(MDSCRIPT)
 @cat $^ \
 | sed s/.png/.eps/g \
 | pandoc -t latex \
 | sed 's/includegraphics/includegraphics[width=0.65\\columnwidth]/g' \
 | sed 's/\mathrm/\,\\mathrm/g' \
 | python FixTableCaption.py \
 | sed 's/\caption{\(.*\)}/\caption{\1\\label{fig:\1}}/g' \
 > $(MDSCRIPT:.md=.tex)
無事、キャプションが上にきました。
\section{表}\label{ux8868}

表

\begin{longtable}[c]{@{}llll@{}}
\caption{例\label{fig:例}}
\\
\toprule\addlinespace
A & B & C & D
\\\addlinespace
\midrule\endhead
11111 & 222 & 33 & 4
\\\addlinespace
5 & 6 & 7 & 8
\\\addlinespace
\bottomrule
\addlinespace
\end{longtable}

キャプションが\end{longtable}の直前にこない場合に遭遇すると失敗しますが、そうなったことがないので、一旦気にしないことにします。

まとめ

これが本当に良い方法なのかわかりませんが、とりあえずキャプションを上に持ってくることができました。
根本的に、pandocから出てくるときにキャプションを上にしておく方法などがあれは、ぜひ教えてください。

2015/02/13

Windows 8.1で、カーソルが表示されなくなった

Blogを書くのはずいぶん久しぶりのようです。

先日、Windowsが起動しなくなったためWindows8.1のリフレッシュを行ったところ、システムは復活したのですが、代わりにカーソルが表示されなくなってしまいました。

最終的には、こちらのサイト
Windows 8.1 Updateをインストールしたらマウスカーソル(マウスポインター)が表示されなくなった件について
の内容で解決しましたが、経緯とやったことを以下に示します。

環境

問題のWindows8.1は、MacBook Pro (Retina, 15-inch, Early 2013)にBoot Campでインストール、VirtalBoxからも起動できるようになっています。

犯人は、VirtualBoxではなかった

はじめはVirtalBox Guest Additionsが疑われました。だって、VirtualBoxから起動するとカーソルが出たんだもの。そのため、Guest Additionsをスタートアップから外したり、アンインストールしたりしましたが、一向に解決しません。

仲間がいないかと検索していると、上記のページが引っかかりました。
どうやら、問題は「VirtalBoxから起動しているか、否か」ではなく、「画面の解像度」のようです。

グラフィックドライバが原因

私の使っているMacにはNVIDIAのGPUが搭載されています。どうやら、これのドライバが原因のようです。VirtalBoxはまだRetina対応していないのか、Mac上で実行しても低解像度で実行されます。このため、問題が発生しなかったのでしょう。

ちょうどWindowsをリフレッシュ(個人用データを残しつつ、OSを再インストール)したところですから、グラフィックドライバが問題のあるバージョンに変わった可能性は十分にあります。

グラッフィックドライバを更新

調べてみると、インストールされていたドライバは最新のバージョンではなかったので、ドライバを更新してみました。
カーソルが出ない状況での作業になりますが、(キーボード操作で)Ctrlキーを押すとカーソルの位置を表示などをONにして、手探りで頑張りましょう...

ドライバを更新する際は、まずタスクバー右側の通知領域内から、NVIDIAのロゴをクリック。
メニューが出てくるので、

 更新プログラムの確認をクリックします。

すると、以下のような画面が出てきます。更新プログラムがある場合は、「インストールする」のようなボタンが現れるので、画面の指示に従ってインストールします。

私の環境では、更新プログラムのインストール後、再起動を行うと、カーソルが表示されるようになりました。

まとめ

今回、カーソルが表示されなくなるという(GUIだと)致命的な問題が発生しましたが、ちょっと特殊な環境だったためすぐに情報が見つからなく少々苦労しました。同様の問題が発生した方のお役に立てばと思います。


2014/11/08

TimeCapsuleのバックアップをrsyncでとる

TimeCapsuleのバックアップについてです。「バックアップのバックアップ?」と一瞬思われるかもしれません。しかし、TimeCapsuleをNASとして使っていると、そこにはiTunesライブラリやiPhotoライブラリなどが入っています。データが消失したら一大事ですね。

TimeCapsuleのバックアップ大事です。TimeCapsuleは壊れやすいと評判で、私のも1度壊れたのでそれ以来気をつけるようにしています。

TimeCapsuleにはTimeCapsuleにUSB接続されたストレージにアーカイブする機能が付いていますが、おそらくこの機能では差分バックアップができません。毎回すべてのファイルをコピーしてしまいます。さらに、バックアップするデータのサイズは合計で1テラバイトを超えますから、途中で失敗する事もしばしばあります。バックアップ処理中はTimeCapsuleの中のデータにアクセスする事もできないのでこれも不便です。
このように、TimeCapsuleのアーカイブ機能は決して便利という事のできるものではありません。

そこで、私はrsyncを使ってバックアップをとることにしました。このrsyncは、ファイルなどの同期を行うソフトウェアで、再開機能や、差分コピー機能などの便利な機能を備えています。

バックアップ用シェルスクリプト

簡単なバックアップ用シェルスクリプトを作ってみました。これをcronなどに登録して、定期的に実行すればいい感じになると思います。バックアップ先のディスクはTimeCapsuleにUSBで接続されていることを前提にしています。
スクリプトの利用は自己責任でお願いします。これを利用することによって発生した被害に対して一切の責任を負いません。

使い方

  1. 下のスクリプトをダウンロードして適当な所に置く
  2. スクリプトに実行権限がついていなければ
    chmod 755 timecapsule_backup.sh
    
    する
  3. SOURCEからPASSWORDまでの変数の中身を自分の環境に合わせて書き換える(アカウント名・パスワードは、AirMacユーティリティで設定したアカウントのもの)
  4. スクリプトを実行する
今の所エラーになった(マウントに失敗したとか、途中で接続が切れたとか)場合にリトライする機能はついてないです。

まとめ

こんな感じでバックアップをとることができます。再開可能というのが心強いですね。また、1回フルバックアップが終わったあとは、同様の手順で行うと差分だけバックアップしてくれます。
TimeCapsuleのバックアップで悩んでいた方はぜひ1度お試しください。

2014/09/13

Lightning - Micro USBアダプタでかさばるケーブルを減らそう!

iPhone付属のLightningケーブルが切れてしまったFlechaMakerです。

Lightningケーブルは、iPhoneを使っていく上での必需品で、充電などのために常に持ち歩いていました。しかし、他にもさまざまなケーブルを携帯していて、かさばって邪魔でした。

mini Bやmicro BなどUSB関連だけで5点、加えてThunderbolt - Ethernetアダプタ、Mini DisplayPort - VGAアダプタがありとても多いです。時にはUSB BとかOAタップとかLANケーブルまで持ってることも

そこで、せっかく買い換えるならば、ということでLightning - MicroUSBアダプタを購入してみました。これは、Androidなどのスマートフォンや、モバイルバッテリー、ワイヤレスイヤホンなど最近のガジェットのインターフェースとして多く採用されているMicro USB BのコネクタをLightningコネクタに変換してくれるものです。発売された時はちょっと話題になっていたような気がします。

LifeProofを使用しているので、アダプタが大きすぎると入らないということもあり、純正品を購入しました。LifeProofとの相性は「このアダプタを考慮して設計したのではないか」というぐらいピッタリのサイズ感でちょうどよいです。ピッタリとは言っても、角が当たるといったことは一切ありませんでした。


USB mini Bからmicroへの変換ケーブルも活用し、3本のケーブルを1つにまとめることができました。

購入後数週間使用してみましたが、特に不便なことはありません。小さいのでなくしてしまわないよう、気をつけながら使っていきたいところです。

 

2014/07/20

Atmel Studioが起動できなくなった

 先日、Atmel Studio6.2がリリースされていることに気づき、アップデートしようとした時のことです。もともとAtmel Studio6.1は外付けHDDにインストールしていたのですが、この機会に内臓ディスクにインストールし直そうと思い、一度アンインストールしてから、内臓ディスクにインストールし直しました。おそらく、これが問題の原因でした。インストール時にエラーが発生し、そのまま続行しましたが、Atmel Studioが起動不能となりました。
 現在ではなんとか使えるようになったので、解決までの手順を記録しておきたいと思います。

環境

  • Windows8.1 Pro
  • Atmel Studio 6.2 

症状

 Atmel Studioのインストール時に、Atmel Software FrameWorkなどのインストール中に"Cannot find one or more components. Please reinstall the application."というエラーが出る。
ウィンドウのタイトルからもわかるように、Atmel Studio本体のインストールの前にインストールされる(まだインストールされてなかった場合)Visual Studio Shell Isolatedに問題があるようです。エラーメッセージに従って再インストールしても問題は解決しませんでした。

解決

 少し検索して見ると、Visual Studio関係でこのようなエラーが出ている件がいくつかありました。
 そのうち、
http://social.msdn.microsoft.com/Forums/ja-JP/350fc4e6-df25-4c84-8ed9-a65908fd2059/vs2012-cannot-find-one-or-more-components-?forum=vsgeneralja
 の解決策を実践したところ、Atmel Studioが起動するようになりました。
 レジストリの設定の変更をすると、場合によっては重大な問題を引き起こし、OSの再インストールが必要になることがあります。レジストリの設定の変更は自己責任でお願いします。また、編集する前に、「ファイル>エクスポート」からバックアップを作成しておくと良いと思います。(http://support.microsoft.com/kb/322756/ja)

  • HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0
  • HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0_Config
  • HKEY_CURRENT_USER\Software\Atmel\AtmelStudio\6.2
  • HKEY_CURRENT_USER\Software\Atmel\AtmelStudio\6.2_config
  • HKEY_CURRENT_USER\Software\Atmel\AtmelStudio\6.1
  • HKEY_CURRENT_USER\Software\Atmel\AtmelStudio\6.1_config

    上記のレジストリキーを削除した後に、もう一度インストールを行いました。上の記事では11.0を削除していますが、Atmel Studioでは2010を使用しているため、10.0となっていました。念のため、Atmel Studioに関するレジストリも削除しています。
     これを行った後でも、Atmel Software FrameWorkのインストール時にエラーが出るのですが、Atmel Studioは起動できるようになりました。

     しかし、Atmel Software FrameWorkの更新の際には未だにエラーが出続けています。もし、正しい解決方法をご存知の方がいたら是非ご教授ください...

    2014/05/17

    おかえりMacBook Pro

    不慮の事故でディスプレイが不調となりAppleに入院していた私のMacBook Pro。
    この状態からきれいになって来ました。
    これからも大切に使っていきたいものです。

    しかし、Appleの修理は速い。
    修理をお願いしてから3日ぐらいで帰ってきますからね...
    購入の時よりも速いのではないかと思うぐらい。

    例によって、Appleロゴの入ったクリアファイルもついてきました。

    2014/04/12

    新しいロードバイク

    今まで乗っていたクロスバイクもそろそろ7年目になってきたので1台増やしても良いかな、ということで購入。

    ふらっとイオンバイクを見に行ったら、白に明るい緑のアクセントが入ったMomentum iWantR-1があり、緑好きなのでほぼ即決。

    この自転車は一般道路での走行向けに設計されているということで平日の移動にも使えそうです。価格も手頃で、長距離は週末に少し走る程度の私には丁度良かったかと思います。

    前の自転車にはビンディングペダルがついていたのでこれは付け替えてもらいました。


    これから安全に気をつけて楽しんでいきたいですね。

    早速今日も少し走ってきました。