LGBTQのシンボル

2011年10月25日火曜日

テキストエディタMery用LaTeXコンパイルマクロ

以前powershellを併用したバージョンを作りましたが、今度はJavascriptマクロ+コマンドラインだけです。powershellはローカルのスクリプトファイルを実行するのに色々めんどくさいんで… PDFの出力先は.texファイルがあるところと同じ場所です。
var docPath = '"'+document.Path + document.Name+'"';
var cmd = 'cmd /c cd /d "' + document.Path + '" & platex '
     + docPath + ' & dvipdfmx '+docPath.replace(".tex","");

document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);

コマンドライン側で.texの拡張子を取り除こうとしてて、馬鹿だなぁと思いましたw 普通にマクロ側で削除してから渡せばいいのに。

2012/07/27追記:---

Meryの開発ブログのこの記事を覗いていたら意外にこのマクロを使ってくださってる人がいるみたいでありがたやw

その中でsaiさんがTeX Live 2012での使い方を書いてたのでこちらの方にも追記させて頂きます。

TeX Live 2012の場合

var cmd = 'cmd /c cd /d "' + document.Path + '" & platex '
の部分を
var cmd ='cmd /c cd /d "' + document.Path + '" & platex -guess-input-enc'
に置き換える。

2011年10月23日日曜日

ASP.NET MVC + Entity Frameworkで列挙体を扱う

Entity Frameworkで列挙体を扱おうとしてかなりはまりました。綺麗にかけないw
まずDBでは列挙体は扱えないのでModelではintとして扱うことになります。これではうまく列挙体を表示できないだろううということで調べて見つけたのがEnumDataType。列挙体の代わりにint型で扱っているメンバーにそれを設定してやるとDisplayFor()にEnumDataTypeで設定した列挙体のメンバーにDescription属性を設定してやって渡すと指定した名前で表示してくれたり、EditerFor()でドロップダウンを生成したりしてくれないんですね。
そこでどうしたらいいのか調べました。
続きを読む »

2011年10月20日木曜日

Razorのススメ

はい、ここで問題です。このコードはサーバーコードの一部分です。どちらのコードが一番読みやすいでしょうか?
@if (Model.Price >= 5000) {
  <b>高い!</b>
}
<% if (Model.Price >= 5000) { %>
  <b>高い!</b>
<% } %>
第5回 新しいビュー・エンジン「Razor」の基本を理解しよう
私は絶対的に前者を取ります。そして前者がRazorのコードです。後者はASP.NETです。
このコード見たときに心撃ちぬかれましたね… ずきゅーんって。惚れたw あんな煩雑だったコードがこんなにも簡単に…と驚きました。短いコードだったら大差ないと思いますが長いコードになるとその差は大きくなると思います。Entity Framework 4もお勧めしたかったのですが、すごいということだけしかまだ理解していなくて具体的に紹介はできないのでまた書くかもしれないです。