293びぼーろく; 引っ越し

引っ越しがいよいよ後10日となった。 とは言うものの準備は全く進んでいない。
どうしたもんか悩む。

冷蔵庫の中に5年ほど前からある冷凍食品がある。
後10日で食べきれるだろうか。

引っ越しついでに背景も夏仕様に変更。今年の夏はどこか旅行にいけるかな。

292びぼーろく; quickrunのインストール[vim]

(2015.6.25に書き換え)

いつもvimさんでtexファイルを編集するけど、コンパイルが面倒。

ま、vim初心者なので割りきっていたけど、素晴らしいプラグインを見つけた。 というか前からあったと思うけど、探していなかった。

ついでにlatexmkも使うことに。統合開発環境っぽくなって相当便利になった。 プラグインの管理はNeobundleを使用。環境はdebian8 (jessie) 。

あまり良くわかっていないので、あちこちを参考にしながら下記のように設定。 (参考にしすぎてどこを見たのかわからなくなった) やり方としては、latexmkのオプションをシェルスクリプトで与えてlatexmを実行という流れ。


・latexmkの設定

latexmkの詳しいオプションは~/.latexmkrc に記入。 lualatexの設定はpdflatexのところに書く。

#!/usr/bin/env perl

$latex            = 'platex';
$latex_silent     = 'platex -interaction=batchmode';
$pdflatex         = 'lualatex';
$pdflatex_silent  = 'lualatex -interaction=batchmode';
$bibtex           = 'pbibtex -kanji=utf8';
$dvipdf           = 'dvipdfmx %O -o %D %S';
$makeindex        = 'mendex %O -o %D %S';
$max_repeat       = 5;
$pdf_mode         = 3; # generates pdf via dvipdfmx

# Prevent latexmk from removing PDF after typeset.
# This enables Skim to chase the update in PDF automatically.
$pvc_view_file_via_temporary = 0;
# Use Skim as a previewer
$pdf_previewer = "open -ga zathura";


・適当なシェルスクリプトを作成

僕の場合は、以下の様に処理。

コンパイルするtexファイルの先頭にコメントでコンパイルする方法を書いておく
→ファイルの先頭から読み取ってlatexmkにオプションとして渡す

lualatexが指定されている:lualatex
xelatexが指定されている:xelatex
dvipsが指定されている:platex+dvips+ps2pdf
それ以外: platex+dvipdfmx

というわけで以下の様にtex2pdf.shを作成。もっとうまいやり方があると思うけど、とりあえず動くので良しとする。

#!/bin/bash

unset TEXFILE
unset LATEXTYPE
unset DVITYPE
unset COMPILE

export TEXFILE=$1
## tex ファイルの指定

export LATEXTYPE=$(head -1 $1 |grep tex )
## コンパイルの指定(platex,lualatex,xelatex)を読み込む

export DVITYPE=$(head -1 $1 |grep dvi )
## dvipsかdvipdfmxかを指定。この時はplatexを使う。

if test "$(echo $LATEXTYPE|sed s/.xelatex./xelatex/)" = "xelatex" ; then

          echo "use xelatex"
          COMPILE=-xelatex

elif test "$(echo $LATEXTYPE|sed s/.lua./luatex/)" = "luatex" ; then

          echo "use lualatex"
          #lualatex  -interaction=batchmode --shell-escape $TEXFILE 
          COMPILE=-lualatex

elif test "$(echo $DVITYPE|sed s/.dvips./dvips/)" = "dvips" ; then

          echo "use platex + dvips"
          COMPILE=-pdfps

else

          echo "use platex + dvipdfmx"
          COMPILE=-pdfdvi

fi

latexmk --shell-escape $COMPILE $TEXFILE
latexmk -c $TEXFILE

実行権限を与えてパスの通っているところへ保存。これでおそらく(?)うまくいくと思う。 -cは中間ファイルの削除をしてくれるオプション。

試しに tex2pdf.sh ./hoge.tex とでもしてうまく動いていればOKだと思う。

・Neobundleのインストール(gitは予めインストールしておく)

mkdir -p ~/.vim/bundle
git clone https://github.com/Shougo/neobundle.vim \
~/.vim/bundle/neobundle.vim



以前にvim-latexをインストールした場合はvim-addon-managerで削除しておく。


・~/.vimrcに下記を追加 (Start Neobundle Settings.から End Neobundle Settings.まで)

"---------------------------
" Start Neobundle Settings.
"---------------------------
" bundleで管理するディレクトリを指定
set runtimepath+=~/.vim/bundle/neobundle.vim/

" Required:
call neobundle#begin(expand('~/.vim/bundle/'))

NeoBundleFetch 'Shougo/neobundle.vim'

"追加のプラグインは以下へ"

" neobundle.vim を使用しているなら

NeoBundle "thinca/vim-quickrun"
NeoBundle "Shougo/vimproc"
NeoBundle "lervag/vimtex"
NeoBundle "Shougo/vimshell.vim"
NeoBundle "itchyny/lightline.vim"

call neobundle#end()

" Required:
filetype plugin indent on

" 未インストールのプラグインを確認

NeoBundleCheck

"-------------------------
" End Neobundle Settings.
"-------------------------

これで、vimを立ち上げるとプラグインのインストールが始まる。


・quickrunの設定

以下をvimrcに追加する。

" ここから
let g:quickrun_config = {}

let g:quickrun_config={'_': {'split': ''}}
set laststatus=2
set t_Co=256

" runner を vimproc に設定
" 更新時間も設定しておく
let g:quickrun_config = {
\ "_" : {

\       "outputter" : "multi:buffer:quickfix",
\       "outputter/buffer/split" : ":top 8sp",
\       "runner" : "vimproc",
\       "runner/vimproc/updatetime" : 40,

\ }
\}

let g:quickrun_config["tex"] = {

            \   "command" : "tex2pdf.sh",
            \     "cmdopt": " ",
            \   "exec": "%c %o %s"
              \ }
" ここまで

これで、\r を打ち込むとtex2pdf.shが実行される。実際にはlatexmkが動いて、自動で必要回数コンパイルしてくれるので便利。

さて、ついでによく使うので以下もvimrcに追加。 カッコの一文字目を入れると閉じカッコ補完と<++>を追加。 <++>はCTL+nで移動できるようにした。
その他\beginで補完、\fracで補完。

"挿入モードでのキーマップ
inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>
inoremap <Esc> <Esc>:w<CR>

inoremap [ []<Space><++><Esc>5hi
inoremap ( ()<Space><++><Esc>5hi
inoremap { {}<Space><++><Esc>5hi
inoremap " ""<Space><++><Esc>5hi
inoremap ' ''<Space><++><Esc>5hi
inoremap < <><Space><++><Esc>5hi
inoremap $ $$<Space><++><Esc>5hi

inoremap <C-n> <Esc>/<++><CR>4xi
inoremap \begin \begin{}<CR><++><CR>\end{<++>}<CR><++><Esc>3k$i inoremap \frac \frac{}{<++>}<Space><++><Esc>11hi

"コマンドモード でのキーマップ
nmap <C-n> <Esc>/<++><CR>4xi

さて、ついでに現在のvimrcをさらす。あるサイトによれば「男は黙ってvimをフルスクリーン」だそうだ。渋い。

"vimrc設定

set tabstop=2
set shiftwidth=5
set number
set autoindent
set fileencodings=iso-2022-jp,utf-8,euc-jp,shift-jis,jis,ucs2le,ucs-2,cp932 set history=1000
autocmd BufEnter * silent! lcd %:p:h

let $TODAY = strftime('%Y%m%d')

"行頭から前行末へ移動
set whichwrap=b,s,h,l,<,>,[,]

"挿入モードでのキーマップ
inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>
inoremap <Esc> <Esc>:w<CR>

inoremap [ []<Space><++><Esc>5hi
inoremap ( ()<Space><++><Esc>5hi
inoremap { {}<Space><++><Esc>5hi
inoremap " ""<Space><++><Esc>5hi
inoremap ' ''<Space><++><Esc>5hi
inoremap < <><Space><++><Esc>5hi
inoremap $ $$<Space><++><Esc>5hi

inoremap <C-n> <Esc>/<++><CR>4xi
inoremap \begin \begin{}<CR><++><CR>\end{<++>}<CR><++><Esc>3k$i inoremap \frac \frac{}{<++>}<Space><++><Esc>11hi

"コマンドモード でのキーマップ
nmap <C-n> <Esc>/<++><CR>4xi

"---------------------------
" Start Neobundle Settings.
"---------------------------
" bundleで管理するディレクトリを指定
set runtimepath+=~/.vim/bundle/neobundle.vim/

" Required:
call neobundle#begin(expand('~/.vim/bundle/'))

NeoBundleFetch 'Shougo/neobundle.vim'

"追加のプラグインは以下へ"

" neobundle.vim を使用しているなら

NeoBundle "thinca/vim-quickrun"
NeoBundle "Shougo/vimproc"
NeoBundle "lervag/vimtex"
NeoBundle "Shougo/vimshell.vim"
NeoBundle "itchyny/lightline.vim"

call neobundle#end()

" Required:
filetype plugin indent on

" 未インストールのプラグインを確認

NeoBundleCheck

"-------------------------
" End Neobundle Settings.
"-------------------------

let g:quickrun_config = {}

let g:quickrun_config={'_': {'split': ''}}
set laststatus=2
set t_Co=256

" runner を vimproc に設定
" 更新時間も設定しておく
let g:quickrun_config = {
\ "_" : {

\       "outputter" : "multi:buffer:quickfix",
\       "outputter/buffer/split" : ":top 8sp",
\       "runner" : "vimproc",
\       "runner/vimproc/updatetime" : 40,

\ }
\}

let g:quickrun_config["tex"] = {

            \   "command" : "tex2pdf.sh",
            \     "cmdopt": " ",
            \   "exec": "%c %o %s"
              \ }

"vimrc設定終わり

291びぼーろく; 答えはすぐ目の前に

あった。3週間ぐらい悩んでいたけど、やっとその間違いに気づいた。
一気に進むと良いな。

引っ越しはなんとか進行中。
後三週間ほどで新居に引っ越す。楽しみ。


さて、ハーフマラソンに思い切って登録した。
ここまで1年ほど。長かった...。まずは完走できることを目標に頑張る。

せっかくなのでランニングシューズも購入。
おかげで、20kmぐらいだとあまり痛くなくなったような気がする。
気のせいかもしれんけど...。

290びぼーろく; 肩当て

とうとう肩当てを外して演奏する方向へ舵を切った。

一大転機といえよう。
でもなれるまで時間がかかりそう。


さて、debian 8でdvdを再生していると

libdvdread: Can't seek to block xxxxxxxx

と言われて途中で再生が停止する。色々試したけど、手動でdvdをマウントするとなぜか最後まで再生できた。

設定を見てみると、自動マウントされないようにしていた。
dfで情報を見てみると、マウントされているにも関わらずファイルが見えない。
謎だけど、とりあえずは自動マウントするように変えて対処。

...でうまくいくと思ったらやっぱり不安定。
結局はrootでマウントしてから再生すると最後まで見れた。

よくわからないのでどうしたものだろうかと悩む。

689びぼーろく; 本格的に

 powerpointへ移行を開始。とりあえず数式モードである程度latexのコマンドが使えるようになったので作業は比較的楽。(もちろんすべてサポートしているわけではない) 数式入力モードはどうやらaltと;を入力するとできることがわかった(altを押した状態で;を押す)。癖はあ...