学部3回生の頃からVine Linuxを使っていたが, 2008年頃研究室用に新しいPCを買ったとき, その当時のVine Linux 4.2がHardに対応してないとかで, Debianに移行した. その後就職したついでに? 同じくDebian系統のUbuntuに移行した. その際に設定に困ったりしたときのMemoを置いておく.
Debian 5.0.3, Ubuntu 9.10, Ubuntu 10.04あたりの設定なので, もう古くなっているかも知れません.
基本的に自分向けのMemoなので, 内容に一切の責任は負いません. やってみて上手くいかなくても文句を言わないで下さい.
commandの上で
$ command option
なら一般user権限で実行したという意味である. super user権限で実行する場合は
$ sudo command option
としている. sudoが使えない場合はsuper userになってから実行する.
職場ならLANの設定がある筈なのでそれに従って行う. ネットワークの設定自体はメニュー辺りから探れるので割愛.
注意すべきは, proxy周りの設定. wget辺りはUbuntuのmenuから辿った設定では反映されない. 例えばUbuntuだと /etc/wgetrc の79行目辺りにproxyの設定を書き込む. HOME directoryの~/.wgetrcに書き込むのもあり.
自宅だと光回線なのでPPPoEの設定をする必要がある. Ubuntuならpppoeconfがdefaultでinstallされている.
$ sudo pppoeconf
で対話的にDSL回線との接続設定が出来る.
pppoe connectについて, boot時に自動的に起動するように設定しても動かないので/etc/rc.localに
pon dsl-provider
と加えておいた.
日本語を含むTeX fileをtypesetしてdvipdfmxで変換しようとすると,
** ERROR ** Could not find encoding file "H".
と出て変換出来ない.
まだ未解決.
http://physics.s.chiba-u.ac.jp/~kurasawa/ubuntu.html を参考にした. というかほぼそのまま. 取り敢えずlatex-env-ja, latex-extra-jaをinstallした上で(このメタパッケージは, Ubuntu 11.04以降存在しない. こちらのページが参考になる),
$ sudo aptitude install cmap-adobe-cns1 cmap-adobe-gb1 cmap-adobe-japan2 $ sudo aptitude install xpdf-japanese
とする. 多分xpdf-japaneseは要らない.
$ kpsewhich -var-value=CMAPFONTS
で出力される場所, 例えば
/home/username/.texmf-var/fonts/cmap
から
/var/lib/defoma/gs.d/dirs/CMapあるいは/usr/share/fonts/cmap
へとsymbolic linkを貼る.
てなわけで,
$ ln -s /usr/share/fonts/cmap ~/.texmf-var/fonts/cmap
とした. これでPDFへの変換が出来た. めでたしめでたし.
Debianのときと同じでjsarticleだとやはり以下のような出力がなされて変換できない.
[1 kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+359/600 --dpi 959 rml-jis mktexpk: don't know how to create bitmap font for rml-jis. kpathsea: Appending font creation commands to missfont.log. ** WARNING ** Could not locate a virtual/physical font for TFM "rml-jis". ** WARNING ** >> There are no valid font mapping entry for this font. ** WARNING ** >> Font file name "rml-jis" was assumed but failed to locate that font. ** ERROR ** Cannot proceed without .vf or "physical" font for PDF output...
解決法もDebianと(ほぼ)一緒で, /etc/texmf/dvipdfmx/dvipdfmx.cfg (Debian 5.0の場合には/etc/texmf/dvipdfm/dvipdfmx.cfg)の末尾に
f jis-cjk.map
と加えれば良い.
途中で色々調べていたら,
$ sudo aptitude install dvipsk-ja
をすると, dvi2ps-fontdata-jaをinstallしようとするが,
以下のパッケージには満たされていない依存関係があります: dvipsk-ja: 依存: libkpathsea4 (>= 2007) [仮想パッケージです]
などと出る. ところがUbuntu 10.04では``libkpathsea5''となっている. このままだとdvipsからps2pdfという方法が取れないな. beamer使うとき機能に制限が出る(大した機能使わないから良いけど)
Ubuntu (10.04 LTSの段階で)の64bit版だとAdobe Readerの日本語版がaptのリポジトリに入ってない. ただし, 英語版はある. つまり, 日本語の表示が普通には不可能. 日本語版をinstallしても良いが, 折角なのでPDFに日本語フォントを埋め込むことにした. メニューが日本語じゃない! ムキー!とか思っていたが, 色々出来たので怪我の功名ということにして自分を納得させた.
ということで, dvipdfmxでipa明朝, ゴシックを埋め込んだpdfファイルを作成する方法. Ubuntuではlatex-env-jaとかが用意されているので, dvipdfmxが使えて, 「フォントを埋め込んでいない」日本語のPDFファイルが作成可能であると仮定する. dvipdfmxは 次にTrueType ipafontをさくっとinstall.
$ sudo aptitude install ttf-ipafont
次にTrueType ipafontの在処をtexmfに入れる. FileをcopyするとHDDの無駄なので, symbolic linkで解決する.
$ sudo ln -s /usr/share/fonts/truetype/ /usr/share/texmf/fonts/truetype $ sudo update-texmf $ sudo mktexlsr
そして適当なところにipa.mapという名前のファイルを作成する(/etx/texmf/dvipdfm/cid-x.mapを書き替えても良い).
$ cat ipa.map rml H :0:ipam rmlv V :0:ipam rml-jis H :0:ipam gbm H :0:ipag gbmv V :0:ipag gbm-jis H :0:ipag $ dvipdfmx -f /filedirectory/ipa.map foo.dvi
でいける筈. ipa.mapを/etc/texmf/dvipdfmx/に置いておけば,
$ dvipdfmx -f ipa.map foo.dvi
で十分な模様. 要するにipafontの場所をdvipdfmxに解らせた上で`-f'というoptionで埋め込めという命令を有効にしている(と, 思う).
** WARNING ** UCS-4 TrueType cmap table... ** WARNING ** UCS-4 TrueType cmap table...
とかmessageが出るのは気にせんで宜しい(らしい).
これだけだと不味い気がするが・・・
次にUbuntuをinstallするときにやってみやう.
やってみたら上手くいった.
今のところ, jsarticleだと埋め込めない.
そんなときは慌てず急がず
$ sudo apt-get install gs-cjk-resource
でOK.
TrueType fontにおける
$ sudo ln -s /usr/share/fonts/truetype/ /usr/share/texmf/fonts/truetype $ sudo update-texmf $ sudo mktexlsr
の部分を
$ sudo ln -s /usr/share/fonts/opentype/ /usr/share/texmf/fonts/opentype $ sudo update-texmf $ sudo mktexlsr
にすればOK.
BrowserやらなんやらではSCIMとか使うけど, Emacsではskkを使うんだよ! という人向け. https://wiki.ubuntulinux.jp/UbuntuTips/Application/EmacsXmodifiers の通りにした. うわぁすごい手抜き.
Ubuntu上のEmacsだとCtrl-\でanthyが起動してしまう. 普段はそれほど使わないのだが, YaTeXを使っているとbackslashとCtrlを誤って同時に押すことが多い. 以前から悩んでいたが, ~/.emacs.d/init.elに
(global-unset-key "\C-\\")
と書いておけば良い. 13年くらいEmacsを使い続けてやっと知った(2013年12月).
~/.emacs.d/init.elに
;;;SKKの辞書拡張 (setq skk-extra-jisyo-file-list (list '("/usr/share/skk/SKK-JISYO.jinmei" . euc-jisx0213) '("/usr/share/skk/SKK-JISYO.geo" . euc-jisx0213) '("/usr/share/skk/SKK-JISYO.station" . euc-jisx0213) '("/usr/share/skk/SKK-JISYO.propernoun" . euc-jisx0213) '("/usr/share/skk/SKK-JISYO.JIS3_4" . euc-jisx0213) '("/usr/share/skk/SKK-JISYO.JIS2" . euc-jisx0213) '("/usr/share/skk/SKK-JISYO.itaiji" . euc-jisx0213) '("/usr/share/skk/SKK-JISYO.itaiji.JIS3_4" . euc-jisx0213) ))
と書いておく.
以下の内容は基本的に「発声練習」というサイトの記事を参考にした, というかそのまま.
TeX周りの環境をUTF-8にしたりする内に, 所謂「髙(はしごたか)」のようなJIS標準に含まれていない文字も表示できるようにしたかったので(上の辞書の拡張もその一環である), Inconsolataを含むRictyフォントを生成する方法.
$ cd ~/ $ git clone git://github.com/yascentur/Ricty.git
次にMiguフォントのMigu 1Mフォントをgetする. 置き場所を/tmp/migu-1m-20130617.zipとgetした場合,
$ unzip /tmp/migu-1m-20130617.zip $ mv migu-1m-20130617/migu-1m-*.ttf ~/Ricty
次にInconsolataから「OpenType file」をgetする. 置き場所を/tmp/Inconsolata.otfとしてgetした場合,
$ mv /tmp/Inconsolata.otf ~/Rictyこの後は
$ sudo aptitude install fontforge $ cd ~/Ricty $ sh ricty_generator.sh auto
$ sudo mkdir -p /usr/share/fonts/truetype/ttf-ricty $ sudo mv ./Ricty-*.ttf /usr/share/fonts/truetype/ttf-ricty $ sudo fc-cache -fv
$ mkdir ~/.fonts $ mv ./Ricty-*.ttf ~/.fonts $ fc-cache -fv
~/.emacs.d/init.elにおいてフォント周りの設定を
(add-to-list 'default-frame-alist '(font . "ricty-11")) (cond (window-system (set-default-font "ricty-11") (set-fontset-font (frame-parameter nil 'font) 'japanese-jisx0208 '("Ricty" . "unicode-bmp")) ))
としておく. unicodeの設定あたりは自信が全くない.
$ gsettings set org.gnome.desktop.interface gtk-key-theme Emacs
~/.emacs/init.elに
(setq browse-url-browser-function '(("." . browse-url-generic))) (setq browse-url-generic-program "google-chrome")
と書いておく.
Linux Mint 13(或いはUbuntuでも良いが)で言語バーが表示されないことがある. 原因がgnomeなのかcinnamonなのかibusなのかは不明だが,
$ gconf-editor
で設定を開いて/desktop/ibus/panelのx, yの値を変えると表示される. なお, このx, yは言語バーの座標を表している. なので直接~/.gconf/desktop/ibus/panel/%gconf.xmlを弄って
<entry name="y" mtime="1366181345" type="int" value="1051"/> <entry name="x" mtime="1366181345" type="int" value="1811"/>
なんて書いてあるところでvalue="200"と書き直して, ibusを再起動すれば表示される. 以前, もっと簡単な方法を見つけていたのだが, メモらなかったので失念した.
~/.wlに以下の内容を書いておく.
;;日本語の添付ファイル名を正しく表示 ;;これがないと化けます. (defvar my-mime-filename-coding-system-for-decode '(iso-2022-jp japanese-shift-jis japanese-iso-8bit)) (defun my-mime-decode-filename (filename) (let ((rest (eword-decode-string filename))) (or (when (and my-mime-filename-coding-system-for-decode (string= rest filename)) (let ((dcs (mapcar (function coding-system-base) (detect-coding-string filename)))) (unless (memq 'emacs-mule dcs) (let ((pcs my-mime-filename-coding-system-for-decode)) (while pcs (if (memq (coding-system-base (car pcs)) dcs) (setq rest (decode-coding-string filename (car pcs)) pcs nil) (setq pcs (cdr pcs)))))))) rest))) (eval-after-load "mime" '(defadvice mime-entity-filename (after eword-decode-for-broken-MUA activate) "Decode encoded file name for BROKEN MUA." (when (stringp ad-return-value) (setq ad-return-value (my-mime-decode-filename ad-return-value))))) (require 'std11) ;; ファイル名が日本語の添付ファイルをエンコードする [semi-gnus-ja: 6046] (eval-after-load "std11" '(defadvice std11-wrap-as-quoted-string (before encode-string activate) "Encode a string." (require 'eword-encode) (ad-set-arg 0 (eword-encode-string (ad-get-arg 0)))))
~/.wlに以下の内容を書いておく.
;;; ;;; 返信引用時に,「wrote」の部分をメールアドレスだけにし, ;;; さらに @ を (at) に置換する ;;; (defun my-wl-draft-cite () (let ((mail-yank-ignored-headers "[^:]+:") (mail-yank-prefix "> ") date from cite-title) (save-restriction (if (< (mark t) (point)) (exchange-point-and-mark)) (narrow-to-region (point)(point-max)) (setq date (std11-field-body "date") from (std11-field-body "from"))) (when (or date from) (setq fromaddr (nth 1 (std11-extract-address-components from))) (insert (format "At %s,\n%s wrote:\n" (or date "some time ago") (or (if (string-match "@" fromaddr) (replace-match "(at)" nil nil fromaddr)) "you")))) (mail-indent-citation))) (setq wl-draft-cite-function 'my-wl-draft-cite)
;;;Python関係の設定 ;;; Elpy を有効化 (elpy-enable) ;;; 使用する Anaconda の仮想環境を設定 (defvar venv-default "~/anaconda3/envs/py35") ;;; virtualenv を使っているなら次のようなパス ;; (defvar venv-default "~/.virtualenvs/hoge") ;;; デフォルト環境を有効化 (pyvenv-activate venv-default) ;;; REPL 環境に IPython を使う ;(elpy-use-ipython) ;;; 自動補完のバックエンドとして Rope か Jedi を選択 (setq elpy-rpc-backend "jedi") (add-hook 'elpy-mode-hook 'py-yapf-enable-on-save) (when (require 'flycheck nil t) (remove-hook 'elpy-modules 'elpy-module-flymake) (add-hook 'elpy-mode-hook 'flycheck-mode)) (define-key elpy-mode-map (kbd "C-c C-v") 'helm-flycheck) (require 'smartrep) (smartrep-define-key elpy-mode-map "C-c" '(("C-n" . flycheck-next-error) ("C-p" . flycheck-previous-error)))こいつをinit.elに書き込んだ上で起動すると色々言われるので, packageを利用して, elpy, flycheckあたりを導入. また, pythonの環境, とCodeの整形を行うyapfを使う.
$ sudo apt-get install python-{tk,numpy,scipy,matplotlib} $ sudo apt-get install yapf yapf3くらいをしておく. yapfとyapf3の違いがよくわからん.