vimtex

VimLaTeXを書く時に使うプラグインvimtex についてです。

VimLaTeXプラグインには、Vim-LaTeX (LaTeX-Suite)やLaTeX-Boxといったものもありますが、違いを見ていきましょう。
まずVim-LaTeXは一番歴史が古いようで、入力支援などの機能は一番多そうです。しかし機能が多すぎて、分かりにくいのは否めません。
次に、LaTeX-Boxとvimtexについて。この二つは似ています。Forkというわけではないようですが、vimtexはLaTeX-Boxを基にしています。なので、LaTeX-Boxでできることは、だいたいvimtexでもできます。機能も必要なものは揃っているので、現在ではvimtexを使っておけば問題ないでしょう。 なおvimtexは以前はvim-latexという名前だったようですが、LaTeX-Suiteと紛らわしいということで改名したようです。

さて、使い方を軽く。まずvimtexではlatexmkを使用するので、使っていなければ設定しておきましょう。 インストールは例によってNeoBundleなどで。私は以下のような設定をしています。

" vimtex
let g:tex_flavor='latex'
let g:vimtex_latexmk_options = '-pdfdvi'
let g:tex_conceal = ''
let g:vimtex_imaps_enabled = 0
" viewer
let g:vimtex_view_general_viewer
\ = '/Applications/Skim.app/Contents/SharedSupport/displayline'
let g:vimtex_view_general_options = '@line @pdf @tex'
autocmd FileType tex syntax spell toplevel

2, 3行目は必須です(pTeX+dvipdfmxを使っているなら)。viewerの1-3行目のやつは、MacでSkimを使っている場合の設定です。あとはお好みで。
ちなみに'let g:vimtex_imaps_enabled = 0'というのは、vimtexが勝手に設定してくれるinsertモードのmapをオフにするオプションです。 ギリシャ文字の入力などが入ってます。 これについてはauctex.vimあたりの設定を適当にコピーしてきて、 'after/ftplugin/vim.tex'にコピーして使ったほうが、自分でカスタマイズもしやすいと思います。

これで、例えばleaderが'\'なら、\llでタイプセット、\lvでSkimが開いてプレビューできます。 この設定なら、synctexを用いて\lvでVim側と同じ場所に移動できますし、 Skimも設定しておけば、Skim上でCmd-Shift-EnterでVimの同じ箇所に移動できます。 これを有効にするには、Skimの環境設定の「同期する」でMacVimを選びます。
さらに\llでタイプセットを開始すると、以後ファイルを変更するたびに自動でタイプセットが行われます。 とても快適です。

ただ、この自動タイプセットが正常に終了してくれないときがあり、その対処法について次の記事で説明します。 それでは。

LaTeXのhyperrefパッケージのbookmarksopenオプション

LaTeXハイパーリンクを使うための、hyperrefパッケージについてです。

hyperrefでは、PDFの"しおり"を用いて目次をつけることができます。これが文字化けしないようにする方法などは、hyperref - TeX Wikiを参照のこと。

問題は、このしおりについてのオプション"bookmarksopen"です。これはPDFを開いたときに、デフォルトでしおりのツリーを開いておくかどうかを制御するオプションです。しかしこのオプションは、upLaTeX + dvipdfmxという環境では動作しないようです。

対処法としては、LuaLaTeXを使えばきちんと動作します。結局pTeX系では動作していないので、あまり解決にはなっていないのですが。

こういったことがあると、LuaLaTeXに移行したくなりますが、まだ問題も多いです。まず、LuaLaTeXで日本語を扱うにはLuaTeX-jaを用いるのですが、このタイプセットが遅い。しかもMacにおいては、El Capitanに更新するとヒラギノフォントのファイル形式が変更されてしまい、現在のTeX Live 2015のLuaLaTeXでは、ヒラギノを扱うことができません(参考:TeX界の El Capitan 迎撃戦記 - TeX Alchemist Online)。

しかしLuaLaTeXのメリットは多いですし、早いところ移行したいものですね。

スマホ版Fate/snの容量

調べても、誰も書いてる人がいなかったので。AndroidFate/stay nightの容量です。

セイバールートのみのときは、私は調べてませんが、1.2GBぐらいみたいですね。UBWダウンロード後の容量は、2.66GBでした。そして、HFダウンロード後は、3.12GBです。

どれもアプリ全体の容量です。UBWが大きくて、HFは意外に小さいですね。

何かの参考になれば。

Vimに乗り換えた

久しぶりの更新です。ほぼ1年近く経ってしまったのですね。

長らくEmacsを使っていましたが、Vimに乗り換えました。理由は、

  • Vimが流行っているらしいから
  • Emacsは重い
  • Emacsのパッケージマネージャ(elpa, cask)が使いにくい
  • Emacsに飽きた

あたりです。まあ大した理由ではない。

また気が向いたらvimtexとかのパッケージについて書きます。それでは。

smartparensのlatex-modeでの\[\]の補完で、間にスペースを入れる

Emacsでsmartparensを使ってLaTeXを書いているとき、\[\]の補完で間にスペースが入ってくれた方が嬉しいです。

(sp-with-modes '(tex-mode
                 plain-tex-mode
                 latex-mode)
  (sp-local-pair "\\[" nil :actions :rem)
  (sp-local-pair "\\[" "\\]"
               :unless '(sp-latex-point-after-backslash)
               :post-handlers '(sp-latex-insert-spaces-inside-pair)))

をinit.elに書けばOKです。

Learn You a Haskell for Great Good!

思い立ってHaskellの勉強を始めてみました。Learn You a Haskell for Great Good!英語版ならばここで無料で読むことが出来ます。公式サイトなのでもちろん合法。(ちなみに日本語版は、すごいHaskellたのしく学ぼう!

さて、進めていたら、早速2章で詰まってしまいました。

boomBangs xs = [ if x < 10 then "BOOM!" else "BANG!" | x <- xs, odd x]

とあるのですが、parse errorが出てしまいます。関数型プログラミング言語Haskell Part17 | ログ速の392辺りによれば、letを付ければ良いらしい。

勉強不足なので分かりませんが、なぜletが必要なのだろうか。そしてこれは誤植なのだろうか…

追記

どうやら、baby.hsに書いてloadすれば良かったらしい…

MacとCyanogenMod

手持ちのNexus 7 (2013)にCyanogenModを入れてみました。それは簡単だったのですが、CyanogenModだと、Macの"Android File Transfer"が使えないようですね。仕方が無いのでadbコマンドを使っていますが、MacでCyanogenmodにファイル転送、他にいい方法はないものでしょうか…

2014/10/21 追記

Android File Transferが使えることが分かりました。

設定からストレージを開き、右上のメニューを開きます。"USBでパソコンに接続"という項目があるので、それをタップして、"メディアデバイス(MTP)"にチェックを入れるだけです。

よかったよかった。