Raspberry Pi で遊ぶ (1) —LaTeX のコンパイルサーバーとして—

先日 届いた Raspberry Pi (RPi) の使い道をあれこれ考えていたが、正直なところあまりよいものが思いつかない。超低電力 (3Wほど) を活かして常時稼動で簡単な仕事を自動化するのがよいと思う。高負荷の作業には当然不向きである。まあ、RPi の場合、単に所有する楽しみだけで十分とは思うのだけど…

とは言え、部屋のインテリアになる前に、とにかく思いついたものを試して見ることにする。まず手始めに LaTeX のコンパイルサーバーとして利用してみる。以前に iPad で TeX?! という記事を書いたことがあったが、今回はこの RPi に “ある” フォルダを監視させて、そこに TeX ファイルを投げ込めば自動でコンパイルを行う、というようにしてみようと思う。iPhone や iPad など、LaTeX のインストールされていない環境でも TeX ファイルのコンパイルができるように。

Raspbian は Debian wheezy ベースなので、当然 TeX Live なんかもコマンド一つで入る。

$ sudo apt-get install texlive-lang-cjk xdvik-ja latexmk
$ ptex -v
pTeX 3.1415926-p3.3 (utf8.euc) (TeX Live 2012/Debian)
kpathsea version 6.1.0
ptexenc 1.3.0
Copyright 2012 D.E. Knuth.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the pTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pTeX source.
Primary author of pTeX: D.E. Knuth.

RPi と他のマシンとの共有フォルダには ownCloud を利用してみる。ownCloud の実体は WebDAV サーバーなのでクライアントソフトの対応を考える必要がない。本当は Dropbox が良かったが、どうも Raspbian には現在のところ未対応の様子。もちろん、RPi と他のマシンでフォルダを共有できれば、自前の WebDAV サーバーでも、Pogoplug など他のクラウドサービスでも、あるいは RPi 自身がサーバーになっても、何でも良い。

最初に davfs2 を導入して /mnt/ownCloud 以下にマウントする。

$ apt-get install davfs2
$ sudo vi /etc/davfs2/secret
https://example.com/owncloud/remote.php/webdav/ username password
$ sudo mkdir /mnt/owncloud
$ sudo chmod 755 /mnt/owncloud
$ sudo mount -t davfs https://example.com/owncloud/remote.php/webdav -o uid=1000,gid=1000 /mnt/owncloud/

/etc/fstab に書く場合:

# owncloud
https://example.com/owncloud/remote.php/webdav /mnt/owncloud davfs uid=1000,gid=1000 0 0

ownCloud はフォルダ clientsync 以下でクライアントマシン間での共有を行う仕様なので、そこに RPi が監視するフォルダ latexbot を作成しておいた。

$ mkdir -p /mnt/owncloud/clientsync/latexbot

この latexbot フォルダに TeX ファイルが投げ込まれると RPi が自動コンパイル (latexmk を使用) を行うように以下のスクリプト (LaTeX on the iPad のもの) を実行しておく。

#!/bin/bash

TEX_PATH="/mnt/ownCloud/clientsync/latexbot"
SLEEP_TIME=5
TIMESTAMP_FILE="$HOME/.latexbot-timestamp"
LATEX="latexmk"

cd "$TEX_PATH"
while true; do
    for file in *.tex; do
        if [ "$file" -nt "$TIMESTAMP_FILE" ]; then
             $LATEX "$file"
        fi
     done
     touch "$TIMESTAMP_FILE"
     sleep $SLEEP_TIME
done

さて、iPad のエディタで TeX ファイルを作成してみる。今回は、Nebulous Notes Lite (無料版) を利用した。”Share” から “Open in…” で “Open in ownCloud” を選択する。

rpi_latex_01.png

アプリ ownCloud で保存先に /clientsync/latexbot を選択する。ファイル名は任意で、ただし拡張子は .tex を (ここでは ipad_test.tex)。

rpi_latex_02.png

latexbot を実行していた RPi でコンパイルが始まる。

rpi_latex_04.png

iPad では、しばらくして ownCloud のフォルダ latexbot をリロードすると、PDF や中間ファイルができている。

rpi_latex_03.png

さて、実用性があるかどうかはおいておいて、このように楽しく遊べることは学べたようだ (-_-;)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s