平衡点
2014/01/02
_ 明けました.
ことしもよろしくお願いします.
帰省中です。 棚上げにしてあるアレやコレについての整理は京都に戻ってから, ということで。
大晦日は AUCTeX(の中の tex-jp.el) と pxdvi (ビルドできないなぁ...)に あけくれておりました。結局うまくいかなくて年を越してしまった訳ですが。
はてさて。
2014/01/05
2014/01/07
_ AUCTeX の設定(その2)
面倒なので
を使うことに.
想定している処理は
- epLaTeX + dvipdfmx
- epLaTeX + dvips + ps2pdfwr
だけ(他人と共同作業することを考えると, 当分 epLaTeX のままだし). ようやく
- LaTeXmk で PDF 生成
- Evince で SyncTeX 有効にして表示
という快適環境が手に入りました, とさ.
2014/01/07 20:29 追記
LaTeXMk 実行時の文字コードの判定と, makeindex/mendex のオプション(ダミー)を修正
設定
というわけで, ひっそりと更新
以下, 設定全文です.
読み込み
Debian パッケージの場合, /etc/emacs/site-start.d/50auctex.el において 既に auctex.el と preview-latex.el が load されているため 特に読み込みの設定は必要無い. Debian 以外の場合に, auctex.el と preview-latex を読み込む.
# source: scheme (unless (file-exists-p "/etc/emacs/site-start.d/50auctex.el") (load "auctex.el" nil t) (load "preview-latex" nil t))
auctex-latexmk
AUCTeX で Latexmk を使い, かつ platex 実行時に文字コード指定も追加してくれる. インストール自体は el-get を使用している
ここでは,
- default の "LaTeX" を上書き
- dvips + ps2pdfwr での処理の追加
をしている.
# source: scheme (defun my:auctex-latexmk-setup () "Add LatexMk command to TeX-command-list." (delq (assoc "LaTeX" TeX-command-list) TeX-command-list) (add-to-list 'TeX-command-list '("LaTeX" "latexmk -gg -pdfdvi %t" TeX-run-latexmk nil (plain-tex-mode latex-mode doctex-mode) :help "Run LatexMk, with epLaTeX, dvipdfmx")) (add-to-list 'TeX-command-list '("LaTeXMk(ps2pdfwr)" "latexmk -gg -pdfps %t" TeX-run-latexmk nil (plain-tex-mode latex-mode doctex-mode) :help "Run LatexMk, with (e)pLaTeX, dvips, ps2pdfwr")) (setq LaTeX-clean-intermediate-suffixes (append '("\\.fdb_latexmk" "\\.aux.bak" "\\.synctex.gz") LaTeX-clean-intermediate-suffixes)) (setq TeX-command-output-list '(("latexmk" ("pdf"))))) (add-hook 'LaTeX-mode-hook (function (lambda () (require 'auctex-latexmk nil 'noerror) (my:auctex-latexmk-setup) (add-to-list 'auctex-latexmk-encoding-alist '(iso-2022-jp . "jis")) (add-to-list 'auctex-latexmk-encoding-alist '(iso-2022-jp-unix . "jis")) )))
~/.latexmkrc の設定は以下の通り
# source: perl $kanji = "-kanji=$ENV{\"LATEXENC\"}" if defined $ENV{"LATEXENC"}; $latex = "platex -interaction=nonstopmode -src-specials -shell-escape --synctex=1 $kanji"; $latex_silent = "platex -interaction=batchmode -src-specials -shell-escape --synctex=1 $kanji"; $bibtex = "pbibtex $kanji"; # stop makeindex/mendex $makeindex = "touch -m %D"; # if ( $ENV{"LATEXENC"} == "jis" ){ # $makeindex = "mendex -J %O -c -r -o %D %S "; # } elsif ( $ENV{"LATEXENC"} == "euc" ){ # $makeindex = "mendex -E %O -c -r -o %D %S "; # } elsif ( $ENV{"LATEXENC"} == "sjis" ){ # $makeindex = "mendex -S %O -c -r -o %D %S"; # } else { # $makeindex = "mendex -U %O -c -r -o %D %S"; # } $dvipdf = "dvipdfmx %O -o %D %S"; $dvips = 'dvips %O -z -f %S | convbkmk -u > %D'; $ps2pdf = 'ps2pdfwr %O %S %D'; $pdf_mode = 3;
日本語用の設定
とはいえ, LaTeXmk にほぼ全て丸投げなので特に設定することは無かったりする.
文字コード自動判定関数
japanese-latex-mode には %(kanjiopt) があって, buffer の文字コードに合わせて platex 実行時に -kanji=euc 等が追加される. 同様の処理を latex-mode でも行なうために文字コード判定用の関数を定義しておく.
auctex.git - GNU AUCTeX では TeX-master について判定する処理が入っているけれど, 自分の用途では必要ないのでもう少しシンプルに(手抜き).
# source: scheme (defun my:coding-get (coding-system) "Convert buffer-file-coding-syetem to pTeX mnemonic.(origin: tex-jp.el)" (let ((base (coding-system-base coding-system))) (cdr (assq base '((japanese-iso-8bit . "euc") (iso-2022-jp . "jis") (japanese-shift-jis . "sjis") (utf-8 . "utf8")))))) (eval-after-load "tex" '(progn (setq TeX-expand-list (append TeX-expand-list '(("%(kanji)" (lambda () (let* ((str (my:coding-get buffer-file-coding-system))) (if str (format " -kanji=%s " str) "")) )))))))
TeX-engine の設定
どのタイミングで使われているのか良くわかっていないのだけれど, 一応設定しておく.
# source: scheme (setq TeX-engine-alist '((ptex "pTeX" "ptex %(kanji)%`%S%(PDFout)%(mode)% -shell-escape" "platex %(kanji)%`%S%(PDFout)%(mode)% -shell-escape" "eptex") (uptex "upTeX" "uptex %(kanji)%`%S%(PDFout)%(mode)% -shell-escape" "uplatex %(kanji)%`%S%(PDFout)%(mode)% -shell-escape" "uptex" ))) (setq TeX-engine 'ptex)
ちなみに japanese-latex-mode では TeX-engine-alist-builtin に ptex, jtex, uptex が追加(setq) されているため 上記設定は不要(かも).
japanese-latex-mode 用の細工
japanese-latex-mode において, 幾つかのコマンドが追加/上書きされている. あまり使うことの無いコマンドが表示されるのが嫌なので, それらを削除したり.
# source: scheme (eval-after-load "tex-jp" '(progn (setq japanese-LaTeX-default-style "jsarticle") (dolist (command '("pTeX" "pLaTeX" "pBibTeX" "jTeX" "jLaTeX" "jBibTeX")) (delq (assoc command TeX-command-list) TeX-command-list)) ))
source parse
auto の位置を変更. デフォルトではカレントディレクトリに auto が作成されて鬱陶しいので ~/.emacs.d/tmp/auctex 以下に置くことにする.
# source: scheme (setq TeX-auto-save t) (setq TeX-auto-local (expand-file-name (concat my:user-emacs-temporary-directory "auctex/auto"))) (setq TeX-style-local (expand-file-name (concat my:user-emacs-temporary-directory "auctex/style"))) (setq TeX-parse-self t) (setq TeX-auto-untabify t) (add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)
hook の追加
TeX-PDF-mode を有効にならない場合には TeX-command-output-list に拡張子を追加しておと良い
# source: scheme (add-hook 'LaTeX-mode-hook 'TeX-PDF-mode) (add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
見た目(preview-latex?)
フォントサイズの変更を無効化
# source: scheme (setq font-latex-fontify-sectioning 1.0)
上付き, 下付きの無効化
# source: scheme (setq font-latex-fontify-script nil)
SyncTeX
# source: scheme (setq TeX-source-correlate-method 'synctex) (setq TeX-source-correlate-start-server t) (add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)
RefTeX
# source: scheme (add-hook 'LaTeX-mode-hook 'turn-on-reftex) (setq reftex-plug-into-AUCTeX t) ;; Make RefTeX faster (setq reftex-enable-partial-scans t)
2014/01/10
_ Mac OS X の synergy で嵌る。
Laptop とデスクトップ数台を synergy で共有して使っています.
最近, 重い腰を上げて, ようやく Mavericks 環境になったので ゆるゆると環境設定などしていたりします.
で, 手元の HHK(日本語配列) を繋いだ laptop を synergy のサーバにして, クライアントはサーバに SSH tunnel 掘って接続しているわけですが.
Mavericks 側に行くと, キーボード配列が...変. US 配列でも無い, よくわからない配列になってしまいました(Shift+2 で * が出るのって何?).
しばし試行錯誤した結果, 結論から言えば, Mac に純正以外のキーボードを付けておくと「システム環境設定」⇒「キーボード」に「キーボードの種類を変更...」 のメニューが出てくるようになる ので, それで対応するのが良い, ということに.
多分, 対応するキーが無い, とかいう話なのかね. うーん.
_ man をカラフルに.
地味ながら, とても良い気分. とりあえず ~/.zshrc あたりに
# source: sh function man (){ env \ LESS_TERMCAP_mb=$(printf "\e[1;31m") \ LESS_TERMCAP_md=$(printf "\e[1;31m") \ LESS_TERMCAP_me=$(printf "\e[0m") \ LESS_TERMCAP_se=$(printf "\e[0m") \ LESS_TERMCAP_so=$(printf "\e[1;44;33m") \ LESS_TERMCAP_ue=$(printf "\e[0m") \ LESS_TERMCAP_us=$(printf "\e[1;32m") \ LANG=C \ man "$@" }
と仕込んでおくことに.
2014/01/13
_ 作業メモ
備忘録.
tDiary
upstream が Gem ベースでのリリースになっているので, それに合わせた作業を開始.
upstream が Bundler で依存関係を解決しているので, Bundler はそのままにして, Debian パッケージ側で
- 依存するライブラリを, gemspec を提供するようにリビルド
- rubygems-integration に依存
で, なんとかなりそうな気がしないでもない. Gemfile.lock でバージョン pin 止めされている奴が多いと, ちょっと困るけど多分そんなに多くない(筈)
Jekyll
これも特に. 依存するライブラリが増えているので, それを ITP してから, かなぁ.
RubyNetCDF, Ruby-hdfeos5
あ, DM permission 貰ってないや. 更新できない...
Maintainer Dashboard@UDD
宿題いっぱい...
2014/01/14
_ 作業メモ(2/n)
tDiary
gemspec では thor と bundler に依存. これは OK.
Gemfile.lock から依存関係を調べてみると...
|----------------------------+-----------------------------+------------| | Gemfile.lock | Debian パッケージ | 作業の有無 | |----------------------------+-----------------------------+------------| | capybara: 2.2.0 | ruby-capybara: 2.1.0-1 | 更新 | | coffee-script: 2.2.0 | ruby-coffee-script: 2.2.0-1 | - | | coveralls: 0.7.0 | - | 新規 | | fastimage: 1.5.4 | - | 新規 | | hikidoc: 0.0.6 | ruby-hikidoc: 0.0.6-1 | - | | jasmine: 1.3.2 | - | 新規 | | launchy: 2.4.2 | - | 新規 | | pit: 0.0.7 | - | 新規 | | pry: 0.9.12.4 | pry: 0.9.12.2-1 | 更新 | | rack: 1.5.2 | ruby-rack: 1.5.2-1 | - | | racksh: 1.0.0 | - | 新規 | | rake: 10.1.0 | rake: 10.0.4-1 | 更新 | | rspec: 2.14.1 | ruby-rspec: 2.14.1-1 | - | | selenium-webdriver: 2.37.0 | - | 新規 | | sequel: 4.4.0 | ruby-sequel: 4.1.1-1 | 更新 | | simplecov: 0.8.2 | ruby-simplecov: 0.7.1-2 | 更新 | | sprockets: 2.10.1 | ruby-sprockets: 2.4.3-2 | 更新 | | sqlite3: 1.3.8 | ruby-sqlite3: 1.3.8-1 | - | | tapp: 1.4.0 | - | 新規 | | test-unit: 2.5.5 | ruby-test-unit: 2.5.5-1 | - | | therubyracer: 0.12.0 | - | 新規 | | thin: 1.6.1 | thin: 1.3.1-4 | 更新 | | trinidad | - | 新規 | |----------------------------+-----------------------------+------------|
ううむ...
Gemfile を眺めると
- rack, sprockets, hikidoc, fastimage は必須
- coffee-script と therubyracer は :coffee で使われる
- thin は :server + :mri で, trinidad は :server + :jruby で
- pit, racksh, rake は :development で
- pry, tapp, test-unit, rspec, capybara, selenium-webdriver,
launchy, sequel, sqlite3, jasmine, simplecov, coveralls は :test で
となっているわけで.
これまで Debian パッケージでは, 適当な HTTPD から CGI として実行することを想定していた訳で, それを満たすにはどうしたら(どこまで削れる)かな...
Jekyll
とりあえず, parslet と toml を ITP
- ruby-parselet: #735295
- ruby-toml: #735290
ほかには Commander, listen あたりかな. うーん...
RubyNetCDF, Ruby-hdfeos5
あ, DM permission 貰ってないや. 更新できない...
upstream 直すかも, ということで pending. Ruby1.8 のパッケージは, 移行先も無いのでバッサリ消す, で良いのかな?
Maintainer Dashboard@UDD
- upload: rake-compiler: 0.9.2-1
- とりあえず, バグレポも無いし, rebuild するだけだったので
2014/01/19
_ 作業メモ (3/n)
Ruby1.8 Removal
- ruby-mathml: Closes #735720
Please Give me DM permissions
とりあえずメールした.
- ruby-stringex
- ruby-twitter-oauth
- ruby-test-unit-rr
- ruby-simple-oauth
- ruby-notify
- ruby-netcdf
- ruby-hdfeos5
- ruby-narray-miss
- ruby-http-parser
- ruby-simple-oauth
Ruby1.8 Removal, 古い FTBFS, New Upstream Release 対応
tDiary
さて, どうすんべ.
2014/01/26
_ 第80回関西Debian勉強会
毎月, 第四日曜日は 関西Debian勉強会 の日です. 今回は第80回でした.
セッションその1
「jenkins + jenkins-debian-glue + freight で野良リポジトリを作る」 というタイトルで, しゃべって来ました. LT枠, とか言われましたが, 多分そうならんだろうなぁ, とか思っていたら 1時間ぐらいダベってしまいました. すみません...
結構飛ばそうと思ったんですが, jenkins-debian-glue に関しては, かなり細かい事を話した気がしないでも無いです. 当日は jenkins.junkhub.org を眺めつつ, 実際に動いている所/設定箇所を見てもらう感じでした.
セッションその2
@znz による 「さくらVPSでIPv6設定」というお話. 自分が使ってるさくらのVPSも, そろそろIPv6の設定をせねば, という状況でしたので, 大変ありがたかったです.
と感想まで頂きました.
もくもく
- ruby-hdfeos5 - Debian NEW package overview
- Accepted ruby-narray-miss 1.2.8-2 (source all)
- Get DM-permission: ruby-hdfeos5, ruby-narray-miss, ruby-netcdf
- howm: prepare new upstream
- はて, #712837 はどしようかしら.
- ところで「Proposed new requirements for emacsen add-on packages」はどうしたら良いの?
- 結局 tDiary までは行けず.
懇親会
焼き肉ですた. 美味しかった.