忍者ブログ

molyb's note

Home > research

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Ubuntu 12.10でのTeX環境の導入

さて,以前の更新から大分時間がたってしまいましたね.
卒論の季節です.はい.

さて卒論ももちろんTeXで書くわけですけども,ubuntu 12.10ではlinuxでのTeX環境を提供してくれるtexliveが最新のものになりtexlive2012になりました. 2012からは日本語に標準で対応しているので,導入がかなり楽になった…と思っていたら意外な所で躓いてしまったので,自分用メモ. インストールは至って簡単.
sudo apt-get install texlive texlive-lang-cjk auctex xdvik-ja
はい終わり. 12.04の時と違い簡単ですね( -ω-)y─┛~~
さぁこれでTeXが書ける…と思ったら,BibTeXが上手く動かない. 何回やっても参考文献がDVIファイルに反映されません.

なんでじゃ(´・ω・`)

調べてみるとTeXの機能拡張を提供してくれるauctexが,texlive2012では使われていないjbibtexを実行しようとしていた. 現在はpbibtexに変わっているため,設定を変えてやる必要があった.
/usr/share/emacs/site-lisp/auctex/tex-jp.el
上記のファイルを書き換えてもいいのだけれども,新しい環境に移行しやすいように .emacsファイルに記載することにした.
;; TeX Mode
(setq TeX-default-mode 'japanese-latex-mode)
(setq japanese-LaTeX-default-style "jsarticle")
(setq japanese-LaTeX-command-default "pLaTeX")
(setq japanese-BibTeX-command "pbibtex")
(add-hook 'LaTeX-mode-hook
	  (function (lambda ()
		      (add-to-list 'TeX-command-list
				   '("pdf" "dvipdfmx '%s'" TeX-run-command t nil))
		      )))
これで日本語環境でも正常に変換してくれる. ついでに画像を自動で挿入したかったので
/usr/local/texlive/2012/texmf/web2c/texmf.cnf
上記ファイルの shell_escape_commands に extractbb を追記しておく.
これをしておくと画像のバウンディングを自動で生成してくれる. ここは .emacs ファイルで処理する上手い方法が見つからなかったのでこうしたけど,記述するいい方法があれば教えてください(-ω-`)

拍手[1回]

PR

Ubuntu 12.04でのTeX環境の導入

私の研究室では論文だけでなく,普段のミーティングにもTeXで資料を作成する.
以前の開発環境がWindowsだったこともあって,秀丸にマクロ入れてTeXを書いてたんだけど,最近開発環境がLinuxに変わったのでLinuxでTeXを書けるよう環境を構築した.

とりあえず以下のパッケージをインストール.ちなみにubuntu12.04 64bitでの作業.
  • texlive
  • texlive-math-extra
  • ptex-bin
  • okumura-clsfiles
  • xdvik-ja
  • jmpost
  • jbibtex-bin
  • mendexk
  • auctex
  • feynmf
  • otf-ipafont
  • otf-ipafont-mincho
  • otf-ipafont-gothic
これを全部インストールしたら,シンボリックリンクを貼る
インストールしたフォントはopenTypeフォントだけどここはtruetypeのディレクトリで大丈夫.
sudo mkdir -p /usr/share/texmf/fonts/truetype
cd /usr/share/texmf/fonts/truetype/
sudo ln -s /usr/share/fonts/opentype/ipafont-mincho/ipam.ttf
sudo ln -s /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf
で,IPAフォントを指定するために,mapファイルを編集.
/etc/texmf/dvipdfm/jis-cjk.mapをこんなかんじで書き換える.
%% for jis fonts of ptex-jisfonts
%rml-jis H Ryumin-Light
%gbm-jis H GothicBBB-Medium

rml-jis H ipam.ttf
gbm-jis H ipag.ttf

rml H :0:ipam.ttf
gbm H :0:ipag.ttf
rmlv V :0:ipam.ttf
gbmv V :0:ipag.ttf

otf-ujmr-h    UniJIS-UTF16-H  ipam.ttf
otf-ujmr-v    UniJIS-UTF16-V  ipam.ttf
otf-cjmr-h    Identity-H      ipam.ttf
otf-cjmr-v    Identity-V      ipam.ttf
hminr-h       H               ipam.ttf
hminr-v       V               ipam.ttf
otf-ujgr-h    UniJIS-UTF16-H  ipag.ttf
otf-ujgr-v    UniJIS-UTF16-V  ipag.ttf
otf-cjgr-h    Identity-H      ipag.ttf
otf-cjgr-v    Identity-V      ipag.ttf
hgothr-h      H               ipag.ttf
hgothr-v      V               ipag.ttf
そんでもって変更の適用.
sudo mktexlsr
sudo update-texmf
これで /usr/share/texmf/ls-R に変更が記録される.フォントを新しく追加した時にこれを忘れると上手くいかなくなるらしい.

もうちょっとフォントの設定.
/etc/texmf/vfontmap.d/20ptex-jisfonts.mapを編集.
### For ptex-jisfonts
#@Mincho Roman|Mincho@
/usr/share/fonts/opentype/ipafont-mincho/ipam.ttf
        rml-jis		JIS-H
#@Gothic SansSerif|Gothic@
/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf
        gbm-jis		JIS-H
### For ptex-jisfonts
長いな.そろそろ飽きてきた頃じゃないだろうか(´・ω・`)
もう少しだ(´・ω・`)y─┛~~
今度は /etc/texmf/vfontmap.d/20xdvik-ja.map を編集.

%@serif@
/usr/share/fonts/opentype/ipafont-mincho/ipam.ttf
  rml  JIS-H    % ASCII pTeX
  rmlv JIS-V    % ASCII pTeX
  dm   JIS-H    % NTT jTeX
%@sansserif@
/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf
  gbm  JIS-H    % ASCII pTeX
  gbmv JIS-V    % ASCII pTeX
  dg   JIS-H    % NTT jTeX
んで
$ sudo update-vfontmap
を実行する.

で最後に~/.emacs.elファイルに以下の記述を追加して完了.
ただ,aspellの自動スペルチェックも入れたかったのでその分の記述も一緒に書いておく.
(setq TeX-default-mode 'japanese-latex-mode)
(setq japanese-LaTeX-command-default "pLaTeX")
(setq japanese-LaTeX-default-style "jsarticle")
(setq TeX-engine-alist '((ptex "pTeX" "eptex" "platex" "eptex")
                         (uptex "upTeX" "euptex" "uplatex" "euptex")))
(setq TeX-engine 'ptex)
(setq TeX-output-view-style '(("^dvi$" "." "/usr/bin/xdvi %d")))

(defun my-flyspell-mode-enable ()
  (flyspell-mode 1))
(mapc
 (lambda (hook)
   (add-hook hook 'my-flyspell-mode-enable))
 '(
   changelog-mode-hook
   text-mode-hook
   latex-mode-hook
   )
 )
で,最後にスペルチェックの言語を指定する設定ファイルを書き出す.
echo "lang en_US" > ~/.aspell.conf
これでやっと全部の設定が完了.これで補完も効いてスペルチェックもしてくれる快適な環境が手に入った(`・ω・´)

拍手[0回]

CMakeの使い方メモ

最近はめっききハードウェアを触らなくなってしまった.
もっぱらシミュレータの開発に明け暮れる日々…

さて,プログラムにはもっぱらEmacsを使っているので,Makefileを自分で作る必要がある.最近作ってるプログラムがそれなりに大きくなってきたので並列ビルドをしてやろうと思い
make -j6
なんてコマンドを実行してみたものの,何故か全然早くならない.どうにかならないものかと思っていたときにCMakeが並列ビルドに対応していると知り,ちょうどMakefileを書くこと自体めんどくさく感じていたのでとりあえず試してみた…日本語資料少ないの何とかなんねーかな.

英語のドキュメントを読みつつ適当に手元にあったサンプルプログラム(yamlを用いたデータ読み込み)用にCMakeLists.txtファイルを記述してCMakeのコマンドを実行
cmake .
よし…あれ?(´・ω・`)エラー??
原因を確認した所,どうもライブラリのパスを定義するときに,相対パスでは通らなくなったらしい.
インクルードは相対パスだけでいけるのになんでこんな紛らわしい仕様にしたんだ…
#CMakeLists.txt
cmake_minimum_required(VERSION 2.8.1)
project(simulator CXX)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR})

add_definitions(-O2 -Wall -Wextra)
include_directories(include)
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib)

set(source src/main.cpp src/readYaml.cpp)

add_executable(main ${source})
target_link_libraries(main yaml-cpp)
こんな感じに書き換えて実行すると上手く行った.
どうもver. 2.8.1からこの仕様になったらしい.

とりあえずこれでうまくMakefileを作れて,並列ビルドも上手く出来てるみたい.
でも,Linuxでしか使わないし,中間生成ファイルとか実行ファイルの生成場所とかを考えると,Makefile書くのとどちらが手間なのだろうか(´・ω・`)
とりあえずもう少し使って様子を見てみることにする.

拍手[0回]

        

最新コメント

ブログ内検索

カウンター