2013年4月1日月曜日

Android に TeXLive2012 を インストール Part2 日本語も使えたよ編

前回は見事に失敗しましたが今回は一応platexで処理できるまでになりました。
私のメインで使っているLinuxがArchLinuxで、UbuntuはVirtualBoxにしか入っていないので前回はArchを使って進めましたが、今回はUbuntuで作業進めます。


必要なもの
root化されているAndroid
TeXLive2012がインストールされ、ADB(Android Debug Bridge)が使えるUbuntu12.10



以降の作業は
ホストコンピュータ:
Ubuntu 12.10 32bit

Android:
Acer Iconia Tab A200
ROM: cm-10-20121027-UNOFFICIAL-a200

の環境で進めていきます。



とりあえず道具を揃えます
$ sudo apt-get install p7zip-full
$ sudo apt-get install texlive-lang-cjk
$ sudo apt-get install android-tools-adb


作業ディレクトリを作る
今回はあらかたのファイルをホストコンピュータでつくり、最後にSDカードにコピーします。
$ mkdir -p /tmp/tex/latex/texlive
$ cd /tmp/tex

プログラムのダウンロード
Downloads -  texlive-for-android -  TeX Live for Android より tl2012-20120530.7z, fmts-20120604.7zをダウンロード。/tmp/tex に置いときます

$ 7z x tl2012-20120530.7z
$ 7z x fmts-20120604.7z
$ rm *.7z

texmf.cnfの編集
サンプル
/storage/sdcard1のところをAndroidでのSDカードのマウント先に適宜変えてください。
編集したら/tmp/tex/tl2012-20120530に置きます。


$ cp -r /usr/share/texmf /tmp/tex/latex/texmf
$ cp -r /usr/share/texlive/texmf /tmp/tex/latex/texlive/texmf
$ cp -r /usr/share/texlive/texmf-dist /tmp/tex/latex/texlive/texmf-dist
$ cp -r /var/lib/texmf /tmp/tex/latex/texmf-var
$ cp -r /etc/texmf /tmp/tex/latex/texmf-config

$ mv dvilualatex.fmt ./latex/texmf-var/web2c/luatex/dvilualatex.fmt
$ mv dviluatex.fmt ./latex/texmf-var/web2c/luatex/dviluatex.fmt
$ mv lualatex.fmt ./latex/texmf-var/web2c/luatex/lualatex.fmt
$ mv luatex.fmt ./latex/texmf-var/web2c/luatex/luatex.fmt
$ mv pdfetex.fmt ./latex/texmf-var/web2c/pdftex/pdfetex.fmt
$ mv pdflatex.fmt ./latex/texmf-var/web2c/pdftex/pdflatex.fmt

$ cd /tmp/tex/tl2012-20120530
$ ln -s pdftex pdflatex
$ ln -s luatex lualatex
$ ln -s eptex platex
$ ln -s euptex uplatex


$ cd /tmp/tex
$ sudo chmod -R 777 latex
$ rm ./latex/texmf-var/ls-R
$ rm ./latex/texlive/texmf-dist/ls-R
$ rm ./latex/texlive/ls-R
$ rm ./latex/texlive/texmf/ls-R
$ rm ./latex/texmf-config/ls-R
$ rm ./latex/texmf/ls-R

$ mktexlsr /tmp/tex/latex/texmf
$ mktexlsr /tmp/tex/latex/texmf-var/
$ mktexlsr /tmp/tex/latex/texmf-config/
$ mktexlsr /tmp/tex/latex/texlive/texmf/
$ mktexlsr /tmp/tex/latex/texlive/texmf-dist/
$ mktexlsr /tmp/tex/latex/texlive/
既存のls-Rを全部消し、作り直してやらないとUbuntuのデータを引き継いでしまうらしい。

出来上がったlatex, tl2012-20120530をSDカード(ext4にフォーマットしています)にコピーします。コピーし終わったらSDカードをAndroid端末にさします。


Androidとホストコンピュータをつなぎ
$ adb shell
$ su

# mount -t ext4 /dev/block/vold/179:33 /storage/sdcard1
# chmod 777 /storage/sdcard1
# chown system /storage/sdcard1
# chgrp sdcard_rw /storage/sdcard1

# mkdir /data/texbin
# cp /storage/sdcard1/tl2012-20120530/* /data/texbin
# cp -r /storage/sdcard1/tl2012-20120530/lib /data/lib
# chmod -R 777 /storage/sdcard1/latex
# chmod -R 777 /data/texbin
# chmod -R 777 /data/lib
# exit
# exit

タブレットでの操作
例としてSDカードにあるex1.texというファイルを処理します
$ export PATH=/data/texbin:$PATH
$ cd /storage/sdcard1
$ platex ex1
$ dvipdfmx ex1



一応日本語の処理が出来るようになりました。出来上がったPDFファイルはどういうわけかパーミッションが厳しいことになっていてのでアストロから開けませんでした。所有者とグループが見知らぬ人に。とりあえずchmod 777 で逃げました。
IPAフォントの埋め込みをしようとしたのですがそれは失敗しました。フォントの設定を修正しないといけないようです。


追記
IPAフォントの埋め込み
IPAフォントのダウンロード よりTTFファイルのIPA明朝/ゴシックをダウンロード

ダウンロードしたzipを解凍する。latex/texlive/texmf-dist/fonts/truetype/public/ipaexにあるipam.ttf, ipag.ttfを消し、解凍したファイルの中にあるipam.ttf, ipag.ttfを代わりにおく。

$ platex ex1
$ dvipdfmx -f ptex-ipa.map ex1


IPAフォントが埋め込まれたPDFが出来上がりました。

memo:
掛けた時間に対して得られた成果は少なかったですがTeXのエラーへの対処法は少しわかりました。
TeX素人の私にとってはAndroid上にLinuxをインストールして、そのLinux上にTeXを入れた方が正直言って楽です。コマンド一つで必要なものが勝手にインストールされますからね。

0 件のコメント :

コメントを投稿