Windows版GvimでPowerShellを呼び出す.

2013/07/23未分類import

Windows版GvimでPowerShellを呼び出す

設定ファイル(“vimrc等”)に下記を追加すると,
vim上で「:!プログラム名」とした際に起動するシェルがコマンドプロンプト(cmd.exe)から
Windows PowerShellに変更できる.
set shell=powershell.exe
PowerShellはコマンドプロンプトよりも高機能でパワフル*1なので,運用の幅が広がる.

*1 : だけどコマンド体系がわかりづらく,日本語のまともな資料もあまりないので非常に使いづらい.

呼び出したPowerShell上で別プロセスとしてプログラムを実行する

TeXのコンパイルは結構な時間が掛かるため,
VimでTeXを編集しているときに,普通にVimからPowerShellを呼び出し,
その上でプログラム(実行用バッチファイル)を実行しコンパイルすると,
数十秒から最悪数分間も処理で編集作業が出来なくなってしまう.

PowerShellでは“Start-Process”というコマンドで,プログラムを実行中のシェルとは別のプロセスで実行できる.
これを利用すればこのロスをなくせる.Vimのコマンドモード上で以下を実行すれば良い.
:!Start-Process -FilePath .\lualatex-set.bat 
“lualatex-set.bat”の中身は以下の通りである.
“jlreq-text.*”はバッチファイルと同じフォルダにある編集中のTeX関連ファイルたちである.
このように本文のほかに索引や参考文献も組み込み,
各カウンタの数字が正しく出力されるまで複数回コンパイルすると,相応の時間が掛かってしまう.
lualatex.exe jlreq-text.tex
mendex.exe -s jlreq-text.ist jlreq-text.idx
pbibtex.exe jlreq-text
lualatex.exe jlreq-text.tex
lualatex.exe jlreq-text.tex
さらに発展したものとして,実行される別プロセスのウィンドウをフォーカスしない(非選択状態)で実行するオプションは以下.
:!Start-Process  {.\lualatex-set.bat} -WindowStyle Minimized

gnuplotのsvg出力でフォントを設定し,inkscapeで編集する

2013/05/16未分類import
svgのグラフでローマン体を使って出力したい場合は次のように設定を行う.
set term svg enhanced mouse size 600,400 fname "Times New Roman"
注意しなければならないのは,inkscapeに登録されいるフォント名を指定しなければならないということ.
Times New Romanを指定したい場合は素直に"Times New Roman"とする.
(gnuplotのEPS出力等では"Times-Roman"など別の名前にする必要がある.)
inkscapeではフォントは(半角スペースを含んだ)半角英数で登録されている.
文字入力モードで選択できるフォント名をそのまま指定する形になる.

dviout abort automatic font generation

2013/04/30未分類import
これまでWindowsでTeX環境を整えるときは専ら
TeXインストーラー3というプログラムを利用させていただいていた.
これは非常に簡単にTeX環境構築ができるのでオススメである.

今回ThinkPadのOSの再インストールを行った関係で久しぶりにこのプログラムを使わせていただいたのだが,
珍しくエラーが出たのでメモしておく.

dvioutでフォントがうまく生成されず,
"dviout abort automatic font generation"というようなエラーが出た.

エラー表示を見たり,TeX環境の再インストールを何度か行ったりしたが,
結局dvioutのTEXROOTの値に"C:\w32tex\share\texmf-dist\fonts"というパスを追加することで解決した.
設定する場所はdvioutを起動して,[Option]→[Setup Parameters ...]の[Font]タブである.
該当箇所を追記し,変更を適用してSaveする.

TeXWikiのdvioutのページを見て修正した.
ここによれば,2013年4月8日以降のW32TeXではこの対策をしないとダメらしい.
dviout側で対策がされるまではこの手動設定が必要みたいである.