2014年11月5日水曜日

xyzzy + katexとSumatraPDFとlatexmk

Windows上でのLatex環境をSublime Textに移行しようと思いつつ,xyzzyで引っ張っています.dviを捨ててlatexmkでタイプセット→SumatraPDFでプレビューするようにしたら快適になりました.

latexmkの設定

texliveに標準で付属しているので,texliverな人はインストールはされているはず.latexmkの設定ファイル .latexmkrc を%USERPROFILE%直下に置く..latexmkrcのサンプル:
#!/usr/bin/perl
$latex         = 'platex -src-specials -interaction=nonstopmode -synctex=1 -kanji=utf8 -guess-input-enc %O %S';
$bibtex        = 'pbibtex %O %B';
$dvipdf        = 'dvipdfmx -I 24 %O %S';
$pdf_mode      = 3;
$pdf_previewer = 'C:/apps/SumatraPDF/SumatraPDF.exe -reuse-instance';

xyzzyの設定

tex, katex関連の基本設定は省略.C-c t j でlatexmk,C-c p でpdfをSumatraPDFでプレビューするようにsiteinit.lに設定を追記.byte compile と再読み込みを忘れないように(M-x: byte-compile-file → ダンプファイル削除してxyzzy起動).
;;typesetter
(setq elisp::tex-command "latexmk -pdfdvi")
;;Run preview by C-c p
(defun sumatrapdf-forward-search ()
  (interactive)
  (let* ((tex-file (get-buffer-file-name))
         (pdf-file (concat (car (split-string (get-buffer-file-name) "\\.")) ".pdf"))
         (line (format nil "~D" (current-line-number)))
         (cmd "rundll32 shell32,ShellExec_RunDLL SumatraPDF")
         (args))
    (setq args (concat "-reuse-instance \"" pdf-file "\" -forward-search \"" tex-file "\" " line))
    (message (concat cmd " " args))
    (call-process (concat cmd " " args)
                  :exec-directory (directory-namestring tex-file))))

(add-hook 'elisp::katex-mode-hook
          #'(lambda ()
       (define-key elisp::*KaTeX-mode-map* '(#\C-c #\p)  'sumatrapdf-forward-search)))

SumatraPDFの設定

SumatraPDF上でダブルクリックするとソースの対応行へ移動するように設定.SumatraPDFのメニューバー > 設定 > オプション > 逆順検索コマンドラインの設定にて:
C:\apps\xyzzy\xyzzycli.exe -g %l "%f"

参考

2014年10月11日土曜日

Windowsでctrl2capしてた人向けMacBook Airのキーリマップ

下記作業は1年以上前に行ったので,情報が古い可能性があります.

Mac使い始めたらキー配置が気持ち悪すぎて頭痛がする程だったのでなんとかした.主にKarabiner(当時はKeyRemap4MacBook)の設定についてメモしておく.デフォルト設定に慣れることができれば一番いいのですが・・・

Windows使用時に標準から変更していたキーは下記の通り:

  • Caps lock > L Control
  • L Control > Caps lock
  • 無変換 > IME off
  • 変換 > IME on

これをMac上で再現していく方針で.
IME関連はgoogle日本語入力を導入してそちらで設定すればよし.USキーボード使ってる人は知らん.

Macで設定したいこと

  • L control > L command > L option > L control の玉突きリマップ
  • Alt + [Shift] + Tab 的に command + [shift] + tab(物理キーの位置で)でアプリケーション切り替えしたい
  • control + tab(物理キーの位置で) はタブ切り替えで頻繁に使うので,それと衝突はさせたくない

Karabiner の private.xml設定

ということで各方面を参考に出来上がった private.xml がこちらになります.

 Command+[Shift]+Tab to Control+[Shift]+Tab
 private.cmd_tab_to_ctl_tab
 __KeyToKey__ KeyCode::TAB, VK_COMMAND | ModifierFlag::NONE, KeyCode::TAB, ModifierFlag::CONTROL_L
 __KeyToKey__ KeyCode::TAB, VK_SHIFT | VK_COMMAND | ModifierFlag::NONE, KeyCode::TAB, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L



 Control(L) > Command(L) > Option(L) > Control(L) except application switch
 private.ctlL_cmdL_optL
 __KeyToKey__ KeyCode::CONTROL_L, KeyCode::COMMAND_L
 __KeyToKey__ KeyCode::COMMAND_L, KeyCode::OPTION_L
 __KeyToKey__ KeyCode::OPTION_L, KeyCode::CONTROL_L

 
 
 __KeyToKey__
 KeyCode::TAB, ModifierFlag::OPTION_L,
 KeyCode::TAB, ModifierFlag::COMMAND_L,
 

 
 __KeyToKey__ KeyCode::SHIFT_L, KeyCode::VK_LAZY_SHIFT_L
 __KeyToKey__ KeyCode::SHIFT_R, KeyCode::VK_LAZY_SHIFT_R



 
 Swap Control(L) and Command(L) except application switch
 private.ctlL_and_cmdL
 __KeyToKey__ KeyCode::CONTROL_L, KeyCode::COMMAND_L
 __KeyToKey__ KeyCode::COMMAND_L, KeyCode::CONTROL_L

 
 
 __KeyToKey__
 KeyCode::TAB, ModifierFlag::CONTROL_L,
 KeyCode::TAB, ModifierFlag::COMMAND_L,
 

 
 __KeyToKey__ KeyCode::SHIFT_L, KeyCode::VK_LAZY_SHIFT_L
 __KeyToKey__ KeyCode::SHIFT_R, KeyCode::VK_LAZY_SHIFT_R

その他

  • Karabiner にて Change Fn key > Fn + Letter to Control + Letter を on
  • Karabiner にて Change Yen key を on
  • システム環境設定 > キーボード > F1, F2などのすべてのキーを標準のファンクションキーとして使用 を on

2014年3月27日木曜日

Windows Home Server 2011でMaximaが動かない場合

DEPの例外にwxmaxima.exeを追加する.
コントロールパネル > システム > 詳細設定 > パフォーマンス > データ実行防止
参考:
http://evemedia.org/tetra/2009/07/18/windows_server_2008_r2_rc_maxi