平衡点


2014/01/02

_ 明けました.

ことしもよろしくお願いします.

帰省中です。 棚上げにしてあるアレやコレについての整理は京都に戻ってから, ということで。

大晦日は AUCTeX(の中の tex-jp.el) と pxdvi (ビルドできないなぁ...)に あけくれておりました。結局うまくいかなくて年を越してしまった訳ですが。

はてさて。


2014/01/05

_ AUCTeX の設定

新年早々じたばた. latex-mode でも japanese-latex-mode でも

  • ptex2pdf で PDF へ変換
  • Evince で SyncTeX で幸せに

ということをしたくて, AUCTeX のソース眺めながらあれこれと設定を修正.

結果はこちら:

とりあえずやりたいことはできたものの, 無駄が多いのでそのうちまた修正予定.

(2014/01/06 追記)

beamer で思い通りに動いてくれなかった. 現状の設定はあまりよろしくないようだ.

うーむ...。常に LaTeXMk 使うように修正してみようかしら。


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.elpreview-latex.el が load されているため 特に読み込みの設定は必要無い. Debian 以外の場合に, auctex.elpreview-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-builtinptex, 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

とりあえずメールした.

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の設定をせねば, という状況でしたので, 大変ありがたかったです.

と感想まで頂きました.

もくもく

懇親会

焼き肉ですた. 美味しかった.


連絡先など
最近の日記
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|
Back to Top ▲