HOME

Linux Memo

学部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になってから実行する.

まずはThe Netに繋ぐ

職場

職場ならLANの設定がある筈なのでそれに従って行う. ネットワークの設定自体はメニュー辺りから探れるので割愛.

注意すべきは, proxy周りの設定. wget辺りはUbuntuのmenuから辿った設定では反映されない. 例えばUbuntuだと /etc/wgetrc の79行目辺りにproxyの設定を書き込む. HOME directoryの~/.wgetrcに書き込むのもあり.

自宅

自宅だと光回線なのでPPPoEの設定をする必要がある. Ubuntuならpppoeconfがdefaultでinstallされている.

$ sudo pppoeconf

で対話的にDSL回線との接続設定が出来る.

11.04では既に解決済であるので, 以下の設定は不要,

pppoe connectについて, boot時に自動的に起動するように設定しても動かないので/etc/rc.localに

pon dsl-provider

と加えておいた.

LaTeX Memo

日本語を含むTeX fileをdvipdfmxでPDFに変換出来ないon Ubuntu 10.04 LTS

日本語を含む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への変換が出来た. めでたしめでたし.

jsarticleだと駄目だった

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

と加えれば良い.

関係なくもないが今のとこ困っていない話(これはUbuntu 10.10で解決した)

途中で色々調べていたら,

$ sudo aptitude install dvipsk-ja

をすると, dvi2ps-fontdata-jaをinstallしようとするが,

以下のパッケージには満たされていない依存関係があります:
dvipsk-ja: 依存: libkpathsea4 (>= 2007) [仮想パッケージです]

などと出る. ところがUbuntu 10.04では``libkpathsea5''となっている. このままだとdvipsからps2pdfという方法が取れないな. beamer使うとき機能に制限が出る(大した機能使わないから良いけど)

dvipdfmxでフォントの埋め込み on Ubuntu 9.10(或いは10.04 LTS)

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だと埋め込めない.

今度はjarticleで上手くいかなかった

そんなときは慌てず急がず

$ sudo apt-get install gs-cjk-resource

でOK.

OpenType fontの場合

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.

その他(主としてGNU/Emacs関連)

Emacsを使っているときに勝手にSCIMやらiBusが起動してうざい

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月).

SKKの辞書の拡張

~/.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)
))

と書いておく.

Rictyフォントのインストール

以下の内容は基本的に「発声練習」というサイトの記事を参考にした, というかそのまま.

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

Rictyを全userで使用する場合

$ sudo mkdir -p /usr/share/fonts/truetype/ttf-ricty
$ sudo mv ./Ricty-*.ttf /usr/share/fonts/truetype/ttf-ricty
$ sudo fc-cache -fv 

Ricktyを個人だけで使用する場合

$ mkdir ~/.fonts
$ mv ./Ricty-*.ttf ~/.fonts
$ fc-cache -fv

EmacsでRictyを利用

~/.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の設定あたりは自信が全くない.

GNOMEのキーバインドをEmacs風に変更する

$ gsettings set org.gnome.desktop.interface gtk-key-theme Emacs

browse-url.elでGoogle Chromeを使う

~/.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を再起動すれば表示される. 以前, もっと簡単な方法を見つけていたのだが, メモらなかったので失念した.

Wanderlustで日本語名のファイルを添付

~/.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)))))

Wanderlustで返信時における「wrote」の部分の変更

~/.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)

Emacs+Pythonの設定なんか

Emacs 25.2.2 on Linux Mint 18な環境でPythonを使う.
;;;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の違いがよくわからん.
TAWARA Yoshihiro
Division of General Education,
Nagaoka National College of Technology.
tawara@nagaoka-ct.ac.jp
Since 20, Oct, 2006
Feel free to link to this page.

Valid XHTML 1.1 正当なCSSです!