なにくそ!Ubuntuでもできるんじゃい!
【目標】
1.なるべく apt-get で取ってこれるパッケージを使いたい
2.PDFに好きなtruetypeフォントを埋め込みたい
3.euc-jpじゃなくてUTF-8でコンパイルできるように
便利パッケージ latex-env-ja, latex-extra-ja はUBUNTU日本語チームのPPAらしい
例の呪文を唱える
sudo add-apt-repository ppa:japaneseteam/ppa gpg --keyserver keyserver.ubuntu.com --recv-keys 68B5F60DCDC1D865 gpg --export --armor 68B5F60DCDC1D865 | sudo apt-key add - sudo apt-get update sudo apt-get upgrade(anthyとかアップデートされる)https://wiki.ubuntulinux.jp/JapaneseLocalizedDerivative/LaTeXForJapanees
まずはここに書いてある通りにやってみる
sudo apt-get install latex-env-ja latex-extra-ja sudo jisftjisconfig add sudo apt-get install gs-cjk-resource (任意のttfを埋め込む際に必要)適当な test.tex ファイルを(EUC-JPで)作って platex test.tex を作ると、test.dvi が出来る。
これは xdvi で見れるのだが、xdviは見た目があまりにもしょぼいので、PDFにしよう。
PDFにするために dvipdfmx をしようとしたら、次のエラーが出た。
** WARNING ** Failed to load AGL file "pdfglyphlist.txt"... ** WARNING ** Failed to load AGL file "glyphlist.txt"... ** ERROR ** Could not find encoding file "H".慌てずに以下のURLにある作業を行う。
http://d.hatena.ne.jp/lucky_pool/20100625/1277450818
echo j jis-cjk.map | sudo tee -a /etc/texmf/dvipdfmx/dvipdfmx.cfg要するに、dvipdfmx.cfg に中国語日本語韓国語の文字コードを追加した。
そして無いと言われているファイルをW32TeXのパッケージから流用する。
上記のURLにあるW32TeXのサイト上にはパッケージは無く、ミラーから取ってくる。
なんとなくKDDIを選択。
sudo apt-get install xz-utils mkdir dvipdfm-w32 cd dvipdfm-w32 wget http://ftp.kddilabs.jp/TeX/ptex-win32/current/dvipdfm-w32.tar.xz tar Jxvf dvipdfm-w32.tar.xz cd share/texmf/fonts/map/agl sudo cp glyphlist.txt pdfglyphlist.txt /etc/texmf/dvipdfmx/.後のファイルは要らないので dvipdfm-w32 ディレクトリごと消そう。
そして次の処理。
sudo mv /etc/texmf/texmf.d/85Misc.cnf /etc/texmf/texmf.d/85Misc.cnf.org sudo sed -e "/^CMAPFONTS/ s|$|;/usr/share/fonts/cmap//|" /etc/texmf/texmf.d/85Misc.cnf.org > /etc/texmf/texmf.d/85Misc.cnf sudo update-texmf要するに、/etc/texmf/texmf.d/85Misc.cnf 中のCMAPFONTS に ";/usr/share/fonts/cmap//" を加えて update-texmf。
これでpdfが出来たので、PDF Viewer である acroread をインストール。
sudo wget https://www.ubuntulinux.jp/sources.list.d/lucid.list -O /etc/apt/sources.list.d/ubuntu-ja.list gpg --keyserver keyserver.ubuntu.com --recv-keys 058A05E90C4ECFEC gpg --export --armor 058A05E90C4ECFEC | sudo apt-key add - sudo apt-get update sudo apt-get install adobereader-jpnしかし以上の作業を行うと、最初は出来ていた platex コマンドが通らなくなる。
! LaTeX Error: File `jarticle.cls' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: cls)調べると、jarticle.cls は /usr/share/texmf/ptex/platex/base/jarticle.cls にある。
TEXINPUTS.platex は $TEXMF/{ptex,tex}/{platex,latex,generic,}// なので悪くなさそう。
#最後の "//" は「以下を再帰的に探せ」ということらしい
しかし $TEXMF の定義を調べると、
TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFLOCAL,!!$TEXMFMAIN,!!$TEXMFDIST}
TEXMFMAIN = /usr/share/texmf
なぜ外れているのか分からないが、$TEXMFMAIN の前の "!!" を消してから再び sudo update-texmf。
sudo mv /etc/texmf/texmf.d/05TeXMF.cnf /etc/texmf/texmf.d/05TeXMF.cnf.org sudo sed -e "/^TEXMF\s/ s|\!\!\$TEXMFMAIN|\$TEXMFMAIN|" /etc/texmf/texmf.d/05TeXMF.cnf.org > /etc/texmf/texmf.d/05TeXMF.cnf sudo update-texmfこれでまた jarticle の platex が通るようになった。
PDFにするときに、指定したフォントをPDFに埋め込んで、どんなOS・デバイスであっても見た目を同じにしたい。
まずは dvipdfmx に設定されているtruetype fontのパスを調べる。
kpsewhich -progname dvipdfmx -show-path=ttfシンボリックリンクを張るもの嫌なので、
これに通常のtruetype fontの場所である /usr/share/fonts/truetype// が含まれればよい。
# /usr/share/fonts/type1 なども入れたいので、/usr/share/fonts を OSFONTDIRに設定する
sudo mv /etc/texmf/texmf.d/75DviPS.conf /etc/texmf/texmf.d/75DviPS.conf.org sudo sed -e "/^OSFONTDIR/ s|/please/set/osfontdir/in/the/environment|/usr/share/fonts|" /etc/texmf/texmf.d/75DviPS.conf.org > /etc/texmf/texmf.d/75DviPS.conf sudo mktexlsr sudo update-texmfkpsewhich TakaoGothic.ttf とかやって、パスが見えれば成功。
あとは /etc/texmf/dvipdfmx の下にフォントのマップファイルを置けばよい。
例えば Takao フォントの場合には以下になる。
sudo cat <<EOF > /etc/texmf/dvipdfmx/takao.map rml H TakaoMincho.ttf rmlv V TakaoMincho.ttf rml-jis H TakaoMincho.ttf gbm H TakaoGothic.ttf gbmv V TakaoGothic.ttf gbm-jis H TakaoGothic.ttf EOFこれで、dvipdfmx -f takao.map hogehoge.tex とすればフォントが埋め込まれたPDFが出来る。
調子に乗って、色んなフォントを埋め込んでみた。
その中で使えそうなもの一覧。apt-get install で入れられるものばかり。
- ttf-dejima-mincho
- 明朝のみ。柔らかく草書体みたいだが、線がしっかりしている。
- ttf-ipafont
- コンパイル時によく分からないエラーが出るのが難点だが、元のフォントに近い。
- ttf-takao
- ubuntuの標準と言っても過言ではない。元と比べるとすっきりとしている。
- ttf-umeplus
- ゴシックのみ。丸っぽく可愛らしい字体で全体的に正方形っぽい。
- ttf-vlgothic
- ゴシックのみ。丸っぽい字体だが、梅+フォントにくらべてすっきりしている。
emacsやviのデフォルトの漢字コードはUTF-8であるが、platexはデフォルトでEUC-JP。
UTF-8を使えるplatexは無いらしい。
そこで、nkfでUTF-8からEUC-JPに変換してからコンパイルするスクリプトを作る。
私は${HOME}/binにパスを通しているので、そこに platex-utf8 という名前のスクリプトを置く。
xdviは見た目しょぼいので、使わない。どうせpdfをacroreadで見るんだから、一気にPDFまで変換してしまう。
そして余計なファイルは消す。
参考にしたのは以下のURL。
http://d.hatena.ne.jp/a_bicky/20100922/1285133141
sudo apt-get install nkf cat <<EOF > $HOME/bin/platex-utf8 #!/bin/sh script_name=platex-utf8 { if [ $# -eq 0 ] || [ $# -gt 2 ]; then echo "Usage: $script_name [font] texfile" exit elif [ $# -eq 1 ]; then< font="" texpath=$1 else font=$1 texpath=$2 fi } if [ ! -e $texfile ]; then echo $script_name: cannot find file $texpath exit fi dirname=`/usr/bin/dirname $texpath` filename=`/usr/bin/basename $texpath` basename=`echo $filename | sed -e "s/\\.[^.]*$//"` tmppath=`/bin/mktemp --tmpdir=/tmp $basename.XXXXXX` nkf -e $texpath > $tmppath /usr/bin/platex $tmppath if [ $? -eq 0 ]; then rm -f $tmppath $dirname/$basename.log $dirname/$basename.aux else exit fi case "$font" in "-d"|"--dejima" ) /usr/bin/dvipdfmx -f dejima.map $dirname/$basename.dvi ;; "-i"|"--ipa" ) /usr/bin/dvipdfmx -f ipa.map $dirname/$basename.dvi ;; "-t"|"--takao" ) /usr/bin/dvipdfmx -f takao.map $dirname/$basename.dvi ;; "-u"|"--ume" ) /usr/bin/dvipdfmx -f umeplus.map $dirname/$basename.dvi ;; "-v"|"--vl" ) /usr/bin/dvipdfmx -f vlgothic.map $dirname/$basename.dvi ;; "-n"|"--none" ) /usr/bin/dvipdfmx $dirname/$basename.dvi ;; * ) /usr/bin/dvipdfmx $dirname/$basename.dvi ;; esac if [ $? -eq 0 ]; then rm -f $dirname/$basename.dvi fi EOF chmod +x $HOME/bin/platex-utf8あとは .zshrc とかに alias platex "${HOME}/bin/platex-utf8" を追加すれば便利。
さらに .zshrc で fpath を設定しているパス(私は ${HOME}/.zsh/functions/Completion)に
以下のファイルを置いておくと幸せになれる。
cat <<EOF > $HOME/.zsh/functions/Completion/_platex-utf8 #compdef platex platex-utf8 _arguments \ '(-t --takao)'{-t,--takao}'[embed Takao TTF in PDF]' \ '(-v --vl)'{-v,--vl}'[embed VL-Gothic TTF in PDF]' \ '(-i --ipa)'{-i,--ips}'[embed IPA TTF in PDF]' \ '(-u --ume)'{-u,--ume}'[embed UME+ TTF in PDF]' \ '(-d --dejima)'{-d,--dejima}'[embed dejima TTF in PDF]' \ '(-n --none)'{-n,--none}'[do not embed TTF in PDF]' \ ':file:_files' EOF
0 件のコメント:
コメントを投稿