tag:blogger.com,1999:blog-63774798286130651172024-03-06T18:07:09.951+09:00Ochiailab Tips研究やプログラミングに関する小ネタやテクニック、メモochiailabhttp://www.blogger.com/profile/09000242353392114591noreply@blogger.comBlogger150125tag:blogger.com,1999:blog-6377479828613065117.post-17054730495600463542017-04-04T18:10:00.002+09:002017-04-04T22:59:44.835+09:00Macの初期設定を1発でキメる。<div class="separator" style="clear: both; text-align: center;">
<a href="http://livedoor.4.blogimg.jp/jigokuno_misawa/imgs/3/7/3725cf20.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://livedoor.4.blogimg.jp/jigokuno_misawa/imgs/3/7/3725cf20.gif" /></a></div>
お久しぶりです.Jです.<br />
<br />
毎年のことながら,PCの初期設定って面倒くさいですよね.Homebrew入れてBrew Cask入れてApp Storeでアプリケーション落としてきて,あれ後何が必要だっけ?となり,おまけにLatexのパッケージのアップデートは永遠に終わらないし….<br />
そこで1コマンドで設定を完了させるスクリプトを作りました.<a href="https://github.com/watanabejunya/Welcome_to_Ochiallab" target="_blank">こちら</a>からどうぞ.<br />
使い方(というほどのこともありませんが)はZipでダウンロードしてきて解凍して,ターミナル開いて実行するだけです.いくつかのステップに分割してあるので,途中エラー等で止まってしまったらそこから再開してください.<strike>あれ,1コマンドじゃな…</strike><br />
<br />
<br />
Latexのパッケージも,フルインストールではなくTex Shopやら要らないものを省いた最小構成にしてあるのでアップデートにもそこまで時間は掛からないと思います.<br />
以下の記事などを参考にさせていただきました.ありがとうございます.<br />
<a href="https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjA4rqmuIrTAhVrzVQKHY4VA84QFggcMAA&url=http%3A%2F%2Fweb-salad.hateblo.jp%2Fentry%2F2014%2F02%2F03%2F000000&usg=AFQjCNH8azpNFO2SVdasO6npx0oGkaD3Pw&sig2=kyUKicVE_jBbBiSmvdlfMA" target="_blank">Homebrewで最小構成のTeX環境を構築する - WEB SALAD</a><br />
<a href="http://qiita.com/yunarsoa/items/868eece57c91bd526c7f" target="_blank">OS X (El-Capitan) に最小限の LaTeX 環境を構築</a><br />
<br />
<br />
ちなみに私は<a href="https://github.com/lra/mackup" target="_blank">Macup</a>というツールを使って新しいMacの設定やアプリケーションを1コマンドでメインのものと同期させてインストールするようにしています.PCを換えたり初期化し直す際に非常に便利です.上のスクリプトは<a href="https://github.com/watanabejunya/Mac_OS_Setup" target="_blank">これ</a>の簡易版ということになります.jhttp://www.blogger.com/profile/02102047110151275244noreply@blogger.com0tag:blogger.com,1999:blog-6377479828613065117.post-32498481976731355852016-10-16T22:17:00.002+09:002016-10-22T13:20:50.104+09:00ファイル同期サービス・ツールまとめ<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfl3QeDVe41APEp7qQ_v04uz-ssgrT0YLJhOlro1GFWPlPmtCLBZeasmWWyc5Ado2a_CUACSGb0yGA82m-_AU1ri6SrwWMxsQLtKDSF0RQMyHuiJbTRdwa0wDa6sX6WvdsvmaENZ2ZoQGU/s1600/kumo_bg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfl3QeDVe41APEp7qQ_v04uz-ssgrT0YLJhOlro1GFWPlPmtCLBZeasmWWyc5Ado2a_CUACSGb0yGA82m-_AU1ri6SrwWMxsQLtKDSF0RQMyHuiJbTRdwa0wDa6sX6WvdsvmaENZ2ZoQGU/s320/kumo_bg.png" width="320" /></a></div>
<br />
<br />
複数の端末でファイルを同期できるサービスやツールをまとめてみました。 <br />
自身の研究生活で利用してきた経験からの所感もあります。<br />
これから使ってみたい人や、現状のサービスに満足していない人の参考になれば幸いです。<br />
<br />
完全に個人の見解ですし、筆者は専門家でもないので、違ってたら教えてください。 <br />
あと、全部無料版で利用可能な範囲内で言及してます。<br />
<br />
<a name='more'></a><br /><br />
<div class="outline-2" id="outline-container-orgheadline1">
<h2 id="orgheadline1">
Resilio Sync</h2>
<div class="outline-text-2" id="text-orgheadline1">
<a href="https://www.resilio.com/individuals/">Resilio Sync - Free File & Folder Sync Software</a><br />
旧 BitTorrent Sync。<br />
元々 BitTorrent 社が開発したソフトだが、このソフトウェアの開発チームが独立して名前が変わった。<br />
Torrent と聞いて抵抗のある人もいるかもしれないけど、全く違法なものではない。<br />
そもそも Torrent 技術自体は違法ではない。<br />
クラウドは通さず P2P によってファイルを同期するため、どこかの会社のサーバー上でデータが保管されるわけではない。
</div>
<div class="outline-3" id="outline-container-orgheadline2">
<h3 id="orgheadline2">
メリット</h3>
<div class="outline-text-3" id="text-orgheadline2">
<ul class="org-ul">
<li>ファイル数、ファイルサイズに上限が無い。</li>
<li>速い。</li>
<li>動作が安定している。</li>
<li>Windows, Mac, Linux, スマートフォンで利用可能。
<ul class="org-ul">
<li>Linux 向けのバイナリファイルはターミナル上から起動できる(設定はブラウザが必要)。</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="outline-3" id="outline-container-orgheadline3">
<h3 id="orgheadline3">
デメリット</h3>
<div class="outline-text-3" id="text-orgheadline3">
<ul class="org-ul">
<li>同期するには、1 つ以上の他端末上でもソフトが動作していないといけない。
<ul class="org-ul">
<li>常時起動のサーバーとかで使えば問題にはならない。</li>
</ul>
</li>
<li>クラウド上にバックアップは作成されない。</li>
<li>CPUとかメモリの占有率高め </li>
</ul>
</div>
</div>
<div class="outline-3" id="outline-container-orgheadline4">
<h3 id="orgheadline4">
所感</h3>
<div class="outline-text-3" id="text-orgheadline4">
筆者は研究用のファイルをサーバーと同期するのにこのソフトウェアを使ってます。
サイズ制限無しで使えるというのが一番のメリットだと思ってます。
</div>
</div>
</div>
<div class="outline-2" id="outline-container-orgheadline5">
<h2 id="orgheadline5">
Dropbox</h2>
<div class="outline-text-2" id="text-orgheadline5">
<a href="https://www.dropbox.com/">Dropbox</a><br />
定番のファイル同期ソフト。
</div>
<div class="outline-3" id="outline-container-orgheadline6">
<h3 id="orgheadline6">
メリット</h3>
<div class="outline-text-3" id="text-orgheadline6">
<ul class="org-ul">
<li>安定している。</li>
<li>比較的速い。</li>
<li>ファイルの変更履歴を確認でき、必要なら前のバージョンに戻せる。
<ul class="org-ul">
<li>ブラウザから</li>
<li><a href="https://www.revisionsapp.com/">Revisions</a> というアプリを使えば、Mac 上からでもできる。</li>
</ul>
</li>
<li>チームなどで共有するフォルダも作れる</li>
<li>パブリックに公開するフォルダも作れる</li>
<li>Windows, Mac, Linux, スマートフォンで利用可能。</li>
</ul>
</div>
</div>
<div class="outline-3" id="outline-container-orgheadline7">
<h3 id="orgheadline7">
デメリット</h3>
<div class="outline-text-3" id="text-orgheadline7">
<ul class="org-ul">
<li>サイズ上限が 2GB くらい
<ul class="org-ul">
<li>色々やると増える</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="outline-3" id="outline-container-orgheadline8">
<h3 id="orgheadline8">
所感</h3>
<div class="outline-text-3" id="text-orgheadline8">
やはり使いやすい。<br />
ファイルを前のバージョンに戻せるのはありがたい。<br />
しかし、サイズ上限が少ないのがネック。<br />
筆者は研究室メンバーで共有しているフォルダ以外今はほとんど使ってません。
</div>
</div>
</div>
<div class="outline-2" id="outline-container-orgheadline9">
<h2 id="orgheadline9">
OneDrive</h2>
<div class="outline-text-2" id="text-orgheadline9">
<a href="https://onedrive.live.com/">OneDrive</a><br />
Microsoft 製。 旧名 SkyDrive。
</div>
<div class="outline-3" id="outline-container-orgheadline10">
<h3 id="orgheadline10">
メリット</h3>
<div class="outline-text-3" id="text-orgheadline10">
<ul class="org-ul">
<li>安定している。</li>
<li>Microsoft Office ドキュメントとの親和性高い</li>
<li>チームなどで共有するフォルダも作れる</li>
<li>パブリックに公開するフォルダも作れる</li>
<li>SkyDrive 時代から使っているユーザーは 25GB 使える
<ul class="org-ul">
<li>通常の新規ユーザーは 5GB</li>
</ul>
</li>
<li>Windows, Mac, スマートフォンで利用可能</li>
</ul>
</div>
</div>
<div class="outline-3" id="outline-container-orgheadline11">
<h3 id="orgheadline11">
デメリット</h3>
<div class="outline-text-3" id="text-orgheadline11">
<ul class="org-ul">
<li>極端に頻繁にファイルを更新すると、バグって同期が終わらなくなる
<ul class="org-ul">
<li>ソフトを再起動すれば解決する</li>
</ul>
</li>
<li>同期速度は速いとは言えない
<ul class="org-ul">
<li>昔よりは改善されつつあるかも</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="outline-3" id="outline-container-orgheadline12">
<h3 id="orgheadline12">
所感</h3>
<div class="outline-text-3" id="text-orgheadline12">
リアルタイム性が必要でないなら重宝する。<br />
しかし、バグで同期できなくなるのは辛い。<br />
筆者は LaTeX ファイルを主に OneDrive 管理フォルダ内で編集するので、その問題さえ無くなれば文句はなくなる。<br />
あと、筆者は
SkyDrive 時代から使っているのと、色々キャンペーンを適用して 1TB く
らい使えるようになってるので、上限は気にならない。<br />
<br />
Dropbox もそうだけど、スマートフォンで撮影した写真のバックアップ先
に利用するのも便利。<br />
特に Microsoft は AI に力を入れてるので、Google
Photos ほどではないかもしれないけど写真を自動仕分けしてくれるので良い。
</div>
</div>
</div>
<div class="outline-2" id="outline-container-orgheadline13">
<h2 id="orgheadline13">
Google Drive</h2>
<div class="outline-text-2" id="text-orgheadline13">
<a href="https://www.google.com/drive/">Google ドライブ - 写真やドキュメントなど、ファイルのクラウド ストレージとバックアップ</a><br />
Google 製。
</div>
<div class="outline-3" id="outline-container-orgheadline14">
<h3 id="orgheadline14">
メリット</h3>
<div class="outline-text-3" id="text-orgheadline14">
<ul class="org-ul">
<li>デフォルトで 15GB</li>
<li>Google サービスとの親和性高い</li>
<li>Windows, Mac, スマートフォンで利用可能</li>
</ul>
</div>
</div>
<div class="outline-3" id="outline-container-orgheadline15">
<h3 id="orgheadline15">
デメリット</h3>
<div class="outline-text-3" id="text-orgheadline15">
<ul class="org-ul">
<li>遅い
<ul class="org-ul">
<li>最近使ってないので、改善されてるかもしれない</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="outline-3" id="outline-container-orgheadline16">
<h3 id="orgheadline16">
所感</h3>
<div class="outline-text-3" id="text-orgheadline16">
デメリットはそんなに無いけど、逆に突出したメリットも思い当たらないので使わなくなった。<br />
Google 製なのでまあ安定しているかな。
</div>
</div>
</div>
<div class="outline-2" id="outline-container-orgheadline20">
<h2 id="orgheadline20">
その他</h2>
<div class="outline-text-2" id="text-orgheadline20">
上記以外のサービスは使ったことないか、使ってもすぐに止めたものが多い。<br />
以下に思いつくものを載せておくので、まだしっくりくるものが無ければ試してみる価値はあると思う。
<br />
<ul class="org-ul">
<li><a href="https://sites.box.com/sync4/">Box Sync 4 - Built for Business, Developed from the Ground Up</a></li>
<li><a href="http://www.freefilesync.org/">FreeFileSync - Free Backup and File Synchronization Software</a></li>
<li><a href="https://spideroak.com/solutions/spideroak-one">SpiderOakONE</a></li>
</ul>
他めんどくさいので<a href="http://matome.naver.jp/odai/2137455928914992601">ここ</a> とか見てください。
</div>
</div>
<div class="outline-2" id="outline-container-orgheadline19">
<h2 id="orgheadline19">
【番外編】</h2>
<div class="outline-text-2" id="text-orgheadline19">
</div>
<div class="outline-3" id="outline-container-orgheadline17">
<h3 id="orgheadline17">
<code>rsync</code></h3>
<div class="outline-text-3" id="text-orgheadline17">
Linux コマンドである <code>rsync</code> を使えば <code>ssh</code> 経由でファイル同期が可能。<br />
詳細は各自で調べてほしい。<br />
ここで紹介した中では一番確実な方法ではあるが、自動同期ではないので任意のタイミングでコマンドを実行する必要がある。<br />
逆に言えば、ファイルが最新状態かそうでないかが明確になるので、サー
バー上にプログラムをアップロードするときなどには向いてるかも。<br />
ちなみに筆者は使おうと思っていたけど、Resilio Sync で足りてるので未だに使ってない。
</div>
</div>
<div class="outline-3" id="outline-container-orgheadline18">
<h3 id="orgheadline18">
GitHub とか BitBucket</h3>
<div class="outline-text-3" id="text-orgheadline18">
これも任意のタイミングで <code>push</code> とか <code>pull</code> する必要があるけど確実。<br />
インターネット上で豊富に情報が載っているので、分からないことは大抵ググれば解決できる。<br />
過去記事は以下。<br />
<a href="http://ochiailab.blogspot.jp/2013/11/gitgithubbitbucket.html">Ochiailab Tips: Git と GitHub か Bitbucket を利用してソースのバックアップを取る</a>
</div>
</div>
</div>
<div class="outline-2" id="outline-container-orgheadline21">
<h2 id="orgheadline21">
終わりに</h2>
<div class="outline-text-2" id="text-orgheadline21">
ビジネス用、プライベート用など用途に合わせて使い分けるのが一番だと思います。<br />
特に社内サーバーとかにプライベートなファイルが入っていると、
管理者から丸見えなので、その辺は留意しながらファイルを同期しましょう。
</div>
</div>
yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com0インド 〒744302 アンダマン・ニコバル諸島 アナル7.3572225000000007 93.6930618000000096.8533070000000009 93.0476148 7.861138 94.338508800000014tag:blogger.com,1999:blog-6377479828613065117.post-63032067369710004902016-08-24T19:15:00.000+09:002016-08-24T19:15:00.406+09:00pythonのすゝめ最大限楽をしたい.<br />
誰もが思い描く人生だと思います.<br />
<br />
本稿では,これまで出来る限り楽をして生きてきた僕が,<br />
楽をしてプログラムを書く一つの方法を提案します.<br />
<br />
その方法は...<br />
<br />
<b><span style="color: red;">Pythonを使おう!</span></b><br />
<br />
pythonを<span style="font-family: inherit;">使うメリットとしては,比較的学習コストが低く,簡単にコーディングができるという点が挙げられます.</span><br />
<br />
一言で言えば,<br />
「<u>気が向いたらpython使ってみたらどうでしょうか.</u>」<br />
という記事であります.<br />
<br />
pythonの基本事項を列挙します.<br />
・ファイルの拡張子は「.py」<br />
・変数定義,型宣言はいらない.<br />
・さらに文末のセミコロン「;」もいらない.<br />
・コンパイルなしで実行できる.<br />
・c言語での{}はインデントで表現する.<br />
・ちなみにコメントアウトは「#」<br />
<br />
既に投稿されている記事(<a href="http://ochiailab.blogspot.jp/2013/03/blog-post.html" target="_blank">ターミナルを電卓化</a>)で,pythonをターミナル上で電卓として使用する方法がありました.<br />
今回はこれをちょっと拡張して,<br />
<u>AWGNチャネルでのBPSK変調BER特性(理論値)</u><br />
を出力してみます.<br />
<br />
<br />
<pre class="brush: plain;">########################
# bpsk.py
########################
import math
f1 = open('bpsk_ber.txt', 'w')
for i in range(0, 11):
EbN0 = pow(10, (i/10.0))
BER = (1.0 / 2.0) * math.erfc( math.sqrt(EbN0) )
print i, BER
print >> f1, i, BER
f1.close()</pre>
<br />
<br />
さて,これであとは実行するだけです.<br />
ターミナル上で<br />
<pre class="brush: plain;">python bpsk.py</pre>
と入力しましょう.<br />
これだけで結果が一発で表示されます.<br />
早すぎる,超便利.<br />
<br />
以下,詳しく説明していきます.<br />
<br />
<br />
<h3>
<b>(1) import math</b></h3>
<u>C言語 --> #include <math.h></u><br />
<u><br /></u>
全く同義ですが,mathにある関数を用いる際は,<br />
"math.func()"のように"math."を関数名の前に書く必要があります.<br />
サンプルプログラムでは,<br />
"math.erfc()"<br />
を使っていますよね.<br />
<br />
<h3>
<b>(2) for i in range(0, 11):</b></h3>
<u>C言語 --> for(i = 0; i < 11; i++)</u><br />
<u><br /></u>
これも同義です.<br />
しかし,forの範囲がインデントによって管理されることに注意です.<br />
今回のプログラムでは,<br />
<pre class="brush: plain;"> EbN0 = pow(10, (i/10.0))
BER = (1.0 / 2.0) * math.erfc( math.sqrt(EbN0) )
print i, BER
print >> f1, i, BER</pre>
がforの中身です.<br />
<br />
<h3>
<b>(3) prinf i, BER</b></h3>
<u>C言語 --> printf("%lf %lf\n", i, BER);</u><br />
<u><br /></u>
もうこんなの見たらC言語書いてられません.<br />
めちゃくちゃシンプルです.<br />
<br />
<h3>
<b>(4) printf >> f1, i, BER</b></h3>
<u>C言語 --> fprintf(f1, "%lf %lf\n", i, BER);</u><br />
<u><br /></u>
これも楽ちん.<br />
<br />
<br />
!最後にpythonを使うにあたって注意!<br />
大規模なシミュレーションには向きません.<br />
実行速度は遥かにC言語の方が速いので,普段の研究ではなかなか使えないかと.<br />
筆者は理論値を出すときや,数値計算で使ってます.<br />
<br />
何事もトレードオフですね.yutohamahttp://www.blogger.com/profile/07934847951679564960noreply@blogger.com0tag:blogger.com,1999:blog-6377479828613065117.post-10839406534230127772016-08-23T17:04:00.004+09:002017-02-01T16:11:55.218+09:00風のごとくコンパイルする風キッズの皆さんお久しぶりです。<br />
今回は風のようにコンパイルする方法を紹介します。<br />
基本的には<a href="http://ochiailab.blogspot.jp/2012/01/bash.html" target="_blank">以前の記事</a>と同じ内容になりますが多少改良を加えてみました。<br />
ここでは/usr/local/binにパスが通っているものとします。<br />
<pre><code>
$ sudo vi /usr/local/bin/compile
</code></pre>
<br />
でコマンドを作成し、以下をコピペしてください。<br />
<pre><code>
#!/bin/sh
# Compile C file.</code></pre>
<pre><code>set -Cue
if [ $# == 0 ]
then
echo "No argument."
exit 1
fi
if [ -f $1.c ]
then
gcc -o $1 $1.c -lm -lfftw3 -x c -g -Wall -Wextra ${@:2}
else<span style="font-family: inherit;">
echo "No such a C file."</span>
exit 1
fi
</code></pre>
<pre><code>
</code></pre>
実行権限を与えます。<br />
<pre><code>$ sudo chmod +x </code>/usr/local/bin/compile</pre>
<br />
これでどこでもhoge.cを<br />
<pre><code>$ compile hoge -option1 -option2
</code></pre>
でコンパイルできます。<br />
<br />
ある順番以降の任意の個数の引数を後ろにつける方法は<a href="http://qiita.com/kentaro/items/db9944429ef160987b3a" target="_blank">こちらの記事</a>を参考にしました。<br />
また、gccの警告オプションについての説明は<a href="http://www.metareal.org/2008/12/12/gcc-options-request-or-suppress-warnings-and-errors/" target="_blank">こちらの記事</a>なんかがいいんじゃないかと思います。jhttp://www.blogger.com/profile/02102047110151275244noreply@blogger.com1tag:blogger.com,1999:blog-6377479828613065117.post-34509926899661948562016-08-21T15:31:00.001+09:002016-08-21T15:31:53.377+09:00lsコマンドをslと打ち間違える人へ<pre><code>
$ brew install sl
$ sl
</code></pre>
<br />
以上。jhttp://www.blogger.com/profile/02102047110151275244noreply@blogger.com0tag:blogger.com,1999:blog-6377479828613065117.post-3059096232111295572016-08-01T16:20:00.000+09:002016-10-29T19:04:38.620+09:00AtomエディタでさいつよのLaTeX環境を構築する<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizcf4ftG2RY6UjYm2UzNYTBJWM_b2Yd9M2z6tZBtfbFmasiH_MKmYMj9-zNmi0c8Pm0gFaTIEdDCOwOdmie31YDUXdamxrmxk4DGaW7LGh7TlAaL82En6pJ6Gy4w7n4JOgVhfM53CSsdWF/s1600/secom.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizcf4ftG2RY6UjYm2UzNYTBJWM_b2Yd9M2z6tZBtfbFmasiH_MKmYMj9-zNmi0c8Pm0gFaTIEdDCOwOdmie31YDUXdamxrmxk4DGaW7LGh7TlAaL82En6pJ6Gy4w7n4JOgVhfM53CSsdWF/s1600/secom.jpeg" /></a></div>
アトム、してますか?<br />
AtomとはGithubが開発した近年注目のエディタであり、ITやWebの界隈の若い人たちには広まってきていますが、アカデミックな世界ではまだEmacsやVim、Visual Studioを使用する傾向が根強く、LaTeXに関する情報もあまり充実しているとは言えません。<br />
そこで今回は、研究室内で数少ないAtom派の筆者がLatex環境の構築について解説したいと思います。<br />
<br />
まずは入れるべきパッケージを紹介します。<br />
<br />
<h4>
① latex</h4>
AtomからLaTeXファイルを直接コンパイルするパッケージ。<br />
筆者の環境である(u)pTeXエンジンでLatexmkを使う前提で話を進めます。<br />
まずは設定から「TeX Path」を設定し(El Capitan であれば <code>/Linrary/Tex/texbin</code> になるはず)、「Builder」を「latexmk」、「Engine」を「pdflatex」とします。<br />
「Custom Engine」に「latexmk -pdf」と入力します。<br />
出力形式は「pdf」、「Open Result after Successful Build」、「Open Result in BackGround」と「Always Open Result in Atom」にチェック<br />
<!-- 「Build on Save」 にチェックをつければ -->
次にホームディレクトリに .latexmkrc ファイルを作成し、以下のコードを貼り付けます。<br />
<pre><code>
#!/usr/bin/env perl
# Commands
$latex = 'platex -synctex=1 -halt-on-error';
$latex_silent = 'platex -synctex=1 -halt-on-error -interaction=batchmode';
$bibtex = 'pbibtex %O %B';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';
# Max number of typeset
$max_repeat = 5;
# Make pdf via dvi
$pdf_mode = 3;
# Preview application
# $pdf_previewer = "open -a /Applications/Atom.app";
# Overwrite setting
$pvc_view_file_via_temporary = 0;
</code></pre>
<br />
これが何をしているのかの解説は<a href="http://konn-san.com/prog/why-not-latexmk.html" target="_blank">こちら</a>や<a href="http://qiita.com/tdrk/items/16f31e45826c57bce412" target="_blank">こちら</a>などに任せます。<br />
各自で適宜修正してください。<br />
これで <code>Ctrl + Option + b</code> と押すだけでコンパイルとpdfの更新ができます。<br />
保存するたびに自動でコンパイルしたい場合には「Build on Save」を、ソースジャンプをしたい場合には「Enable SyncTeX」をチェックしてください。<br />
<h4>
<br />
<br />
②language-latex</h4>
LaTeXの文法に合わせてカラーをつけてくれるパッケージ。<br />
タブ幅や折り返し幅も設定できます。<br />
<h4>
<br />
<br />
③latexer</h4>
文法や参照の自動補完をしてくれるパッケージ。<br />
BibTeXのcitationなどに非常に便利。<br />
<br />
<br />
<h4>
④pdf-view</h4>
Atom内でpdfファイルを開くパッケージ。<br />
ズームや上下移動もキーボードからできます(誰かvimのキーバインドで移動する方法があれば教えてください…)。<br />
「SyncTex Reverse sync behavior」は「Click」または「Double Click」にしておきましょう。<br />
<br />
<br />
これで準備は整いました。<br />
あとは編集して保存するたびに自動でpdfが更新され、クリックでソースにジャンプすることができます。<br />
これでもうSkimもSumatraも不要です。<br />
必要なのはただ1つ、<strike>Secom</strike> Atomだけです。<br />
<br />
※ 2016/10/29 追記<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho55jRt3ahNgfy2UFtFOJBC9bqKA-QWm1WhPmZbiSfC5_4jx9T47mACjmBS2FmSngrRx1FXQtdEp-HO6WEXUu4v2ZZzpvRfZ3KCh8r2tY3-VBx3wPQwA3u_gYvWbKHaIBOkD0majjQ7NLM/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-08-01+16.12.03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho55jRt3ahNgfy2UFtFOJBC9bqKA-QWm1WhPmZbiSfC5_4jx9T47mACjmBS2FmSngrRx1FXQtdEp-HO6WEXUu4v2ZZzpvRfZ3KCh8r2tY3-VBx3wPQwA3u_gYvWbKHaIBOkD0majjQ7NLM/s400/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-08-01+16.12.03.png" width="400" /></a></div>
<br />
<br />jhttp://www.blogger.com/profile/02102047110151275244noreply@blogger.com0tag:blogger.com,1999:blog-6377479828613065117.post-66811412144850236462016-07-13T10:49:00.000+09:002016-07-13T10:49:43.745+09:00【Emacs】LaTeXソース内のtable環境を見やすくするtips<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC4ObKBDae59NcQK2SaKgP8wnLluFSksM_KpIz-1u1EiHe3rpYOtr03mbFoB6HNuAtof3kYmAgL947RMaKjMeK1S90wu5cJNde-o9PgTyStl6C_HNpDF7WahZUfzBVpJxz47v_vmw06GOf/s1600/hito_jinrui_shinka.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC4ObKBDae59NcQK2SaKgP8wnLluFSksM_KpIz-1u1EiHe3rpYOtr03mbFoB6HNuAtof3kYmAgL947RMaKjMeK1S90wu5cJNde-o9PgTyStl6C_HNpDF7WahZUfzBVpJxz47v_vmw06GOf/s320/hito_jinrui_shinka.png" width="320" /></a></div>
<br />
LaTeXのtableを<code>&</code>で揃える技があります。<br />
<br />
<a name='more'></a>以下のようなソースが、 <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFpqQCa7Uk7gKv_I0SVGo2DnhOFZDc-2MKhtRBVGbOn56M_5JDXwGKgXCdm9RAZDvXH1tpSjAkRHSL6u1j2Jkty5_PREscSnAuQK7HepwN0BAwwk5rxfsn_utFDroQuQIVTWpkCsgxUhqP/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-07-13+10.29.21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="153" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFpqQCa7Uk7gKv_I0SVGo2DnhOFZDc-2MKhtRBVGbOn56M_5JDXwGKgXCdm9RAZDvXH1tpSjAkRHSL6u1j2Jkty5_PREscSnAuQK7HepwN0BAwwk5rxfsn_utFDroQuQIVTWpkCsgxUhqP/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-07-13+10.29.21.png" width="320" /></a></div>
以下のように見やすくなります。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-cYEfj3lOMJH4aSFhrJmHIrQUYcpeNvHAru3Q_quqp76NCJVjO1kJ0fJ652MD5a_xEfEYrfoJZIIPCLfbtZoC3Ajyqj4i7cHQeVcgogVPbUhuuG7g1Z0HrDvHF_omZw_abyfsGlwknx8a/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-07-13+10.30.38.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="141" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-cYEfj3lOMJH4aSFhrJmHIrQUYcpeNvHAru3Q_quqp76NCJVjO1kJ0fJ652MD5a_xEfEYrfoJZIIPCLfbtZoC3Ajyqj4i7cHQeVcgogVPbUhuuG7g1Z0HrDvHF_omZw_abyfsGlwknx8a/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-07-13+10.30.38.png" width="320" /></a></div>
<br />
やり方は、カーソルをtable内に置いて<br />
<pre class="brush: plain;">M-x align-current
</pre>
とやるだけです。
<br />
このコマンドは上下が空行で挟まれた部分を整えます (多分)。
<br />
指定した範囲を整えたい場合は、その範囲を選択した状況で
<br />
<pre class="brush: plain;">M-x align
</pre>
するだけです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
ちなみにこの <code>align</code> コマンドはC言語のソースでも使えて、いい感じに整えてくれます。<br />
お試しを。yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com0フォークランド諸島 (マルビナス諸島) 〒FIQQ 1ZZ-52.133488040771475 -59.3701171875-52.753421540771477 -60.6610106875 -51.513554540771473 -58.0792236875tag:blogger.com,1999:blog-6377479828613065117.post-829793180918881782016-04-29T16:21:00.001+09:002017-05-25T22:20:06.669+09:00【Emacs】diredの履歴もrecentfに表示させる<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQI_VaFw-u_rHr0Afth6DAl7gVBkP8xGhtr6o8CHB4VABIr8gTQqciorTP2WTe5xcu6jfION5-TsyC0MuzysdPysPPR3stUxKwXzIm_sJAfhQyuag48AisKUn2Otd1MpVdvl5boNr1fsJd/s1600/desinger_free_sozai.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQI_VaFw-u_rHr0Afth6DAl7gVBkP8xGhtr6o8CHB4VABIr8gTQqciorTP2WTe5xcu6jfION5-TsyC0MuzysdPysPPR3stUxKwXzIm_sJAfhQyuag48AisKUn2Otd1MpVdvl5boNr1fsJd/s320/desinger_free_sozai.png" width="320" /></a></div>
<br />
筆者はEmacsでファイル開くときなど<code>C-x C-f</code>を使うよりも<code>C-x d</code>でdiredを経由の方が好きです。<br />
recentf (helm-mini)にもdiredの履歴が表示されたら便利だなと思ったのでその設定をしました。<br />
<br />
<a name='more'></a><br />
<br />
やり方は簡単で、package.elでrecentf-extをインストールして、init.elに<br />
<pre class="brush: lisp">(require recentf-ext)
</pre>
と追加するだけです。<br />
<br />
参考サイト:<br />
<a href="http://d.hatena.ne.jp/rubikitch/20091224/recentf">人は俺を「recentfマスター」と呼ぶ - http://rubikitch.com/に移転しました</a>
yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com0日本, 〒207-0011 東京都東大和市清原35.7403171 139.4454055999999635.7274291 139.42523559999995 35.753205099999995 139.46557559999997tag:blogger.com,1999:blog-6377479828613065117.post-11378990087292028632016-04-19T22:34:00.001+09:002016-04-19T22:34:51.756+09:00iTerm小技<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlWLoeTw0VYd4ER2oZMDJYph0pTl-m9RZJAEzOSXK7N3Y1GnYoF4nEXQgi_4zWuMIpRgglA8BHS6AYA-LKH1fWkAN498gH0JuTpM2BTxqboh2_FwmCYFAyhyhoBXl4xMQEH8yocPE2ClNr/s1600/game_keitai_broken_kids.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlWLoeTw0VYd4ER2oZMDJYph0pTl-m9RZJAEzOSXK7N3Y1GnYoF4nEXQgi_4zWuMIpRgglA8BHS6AYA-LKH1fWkAN498gH0JuTpM2BTxqboh2_FwmCYFAyhyhoBXl4xMQEH8yocPE2ClNr/s320/game_keitai_broken_kids.png" width="292" /></a></div>
<h2>
</h2>
<h2>
タブ、ウィンドウの操作</h2>
<ul>
<li>「⌘+T」で新規タブ</li>
<li>「⌘+{」「⌘+}」でタブ間の移動 </li>
<li>「⌘+数字」で数字のタブに直接移動</li>
<li>「⌘+N」で新規ウィンドウ</li>
<li>「⌘+Option+数字」でウィンドウ移動</li>
</ul>
<h2>
ペーンの分割 </h2>
<ul>
<li>「⌘+D」で左右に分割</li>
<li>「⌘+Shift+D」で上下に分割</li>
<li>「⌘+[」「⌘+]」でペーン間の移動</li>
<li>「⌘+Shift+Enter」で選択中のペーンを最大化、もう一度押すと元に戻る</li>
</ul>
<h2>
貼り付けの履歴</h2>
<ul>
<li>「⌘+Shift+H」</li>
</ul>
<h2>
オートコンプリート</h2>
<ul>
<li>「⌘+;」で補完候補が出る</li>
<li>「Enter」で選択、「Tab」展開</li>
<li>「Esc」で中止</li>
</ul>
<h2>
</h2>
yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com0Term Rd, Huntsville, AL 35803 アメリカ合衆国34.6186935 -86.61781409999997534.612159999999996 -86.627899099999979 34.625227 -86.607729099999972tag:blogger.com,1999:blog-6377479828613065117.post-53377993120613084892016-04-18T20:54:00.000+09:002016-04-19T13:40:46.434+09:00BetterTouchToolの個人的に便利な使い方<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijctoweo7BDhUvziURfL6O5wZLRRrIYfoiWUXEeUkNN4bOLC7NA086-rvL3B0w3pt2MrN6Esfp-eok9ZogfZcr3668RfulrSWAE5270GS3IOHrJ4fkPw0fjAiMT2tr15KBVG4oPSHAWB7n/s1600/syokuji_computer.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijctoweo7BDhUvziURfL6O5wZLRRrIYfoiWUXEeUkNN4bOLC7NA086-rvL3B0w3pt2MrN6Esfp-eok9ZogfZcr3668RfulrSWAE5270GS3IOHrJ4fkPw0fjAiMT2tr15KBVG4oPSHAWB7n/s320/syokuji_computer.png" width="320" /></a></div>
<br />
最近有料化された<a href="https://www.boastr.net/" target="_blank">『BetterTouchTool』</a> a.k.a. 『BTT』の個人的に気に入ってるキーボードショートカットの設定を紹介します。<br />
余談ですが、筆者はウィンドウのリサイジングや配置関係のショートカットはほとんど<a href="http://ochiailab.blogspot.jp/2013/11/slate.html" target="_blank">『Slate』</a>でまかなっているので、ここで紹介するのはウィンドウ管理以外のBTTの使い方です。 <br />
<br />
<a name='more'></a><br />
<br />
<h2>
指定アプリの一発起動 or フォーカス</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCRL3RM9gYVIpRHUHgOoyjJDR0YWVdeUB-PXgTWZFKzpxJ-V8fP5xJW4cwuFs6bzucnJ3LXx3jMg1n1rP2hvfmnstMAuZwUOeoI9Vg7jIQ5vYMXX9mb16x7thJFnf3nj4g4eqpYwPSts_0/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-04-18+20.20.42.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCRL3RM9gYVIpRHUHgOoyjJDR0YWVdeUB-PXgTWZFKzpxJ-V8fP5xJW4cwuFs6bzucnJ3LXx3jMg1n1rP2hvfmnstMAuZwUOeoI9Vg7jIQ5vYMXX9mb16x7thJFnf3nj4g4eqpYwPSts_0/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-04-18+20.20.42.png" width="320" /></a></div>
「Controlling Other Applications」の「Open Application / File / Apple Script ...」からアプリケーションを指定してキーボードショートカットを設定すると、そのショートカットキーでアプリを一発で起動できます。<br />
既に起動されている場合はそのアプリにフォーカスが移ります。<br />
Macの標準キーボードショートカットである「⌘+Tab」も便利ですが、何度もTabキー押すのがめんどくさいと感じている人はこのショートカットはおすすめです。<br />
筆者は「⌘+Option+アプリの頭文字」のキーなどに割り当てています。<br />
<br />
<h2>
Finderで選択中のファイルを指定アプリで開く</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKXVIF3mrFHrQbs5jSrzFQo7NmE_09n4-g1cwFzfZFc5Mbx32_VWpSd60VC4-bKDEeQhyphenhyphenLFfbuoDoZSIFd0WG57JJJhYnWmsOj1Mx2-xSbL5IvLkEVODepkxV1WddbsxgQM83aZBFAyrL2/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-04-18+20.29.57.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKXVIF3mrFHrQbs5jSrzFQo7NmE_09n4-g1cwFzfZFc5Mbx32_VWpSd60VC4-bKDEeQhyphenhyphenLFfbuoDoZSIFd0WG57JJJhYnWmsOj1Mx2-xSbL5IvLkEVODepkxV1WddbsxgQM83aZBFAyrL2/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-04-18+20.29.57.png" width="320" /></a></div>
「Controlling Other Applications」の「Open Current Finder Selection With Specific App」はFinderで選択中のファイルを特定のアプリを使って開くことができます。<br />
例えば普段エディタは『Emacs』を使っているけど『Visual Studio Code』を使って開きたい、もしくは普段pdfビュアーは『Skim』を使っているけど『Adobe Acrobat Reader』で開きたいときなどに重宝します。<br />
この設定でミソはBTTの左の「Select Application:」の部分をFinderにしてやることだと思っています。<br />
筆者は「⌘+Ctrl+Option+アプリの頭文字」のキーに割り当てています。<br />
<br />
<h2>
ウィンドウをMission Control上の隣のデスクトップに移動させる</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht_vqOsR6oMISq-mOeYPT7l7AHPR2F8MawfUgWJaBhZrQK1CeNabheNV3c3YJkG-df0EOOG2zs8D5OGBoO6BZNbTujfMl6NOVvtt33JKlIXwUD5mM1wYKKapIL4K2WMRHbOGYyAu_DV4sR/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-04-18+20.40.46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht_vqOsR6oMISq-mOeYPT7l7AHPR2F8MawfUgWJaBhZrQK1CeNabheNV3c3YJkG-df0EOOG2zs8D5OGBoO6BZNbTujfMl6NOVvtt33JKlIXwUD5mM1wYKKapIL4K2WMRHbOGYyAu_DV4sR/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-04-18+20.40.46.png" width="320" /></a></div>
<br />
最初にBTTをウィンドウマネージャとして使っていないなどと書きましたけど、この機能だけ<a href="https://github.com/jigish/slate/issues/78" target="_blank">オープンソースのソフトウェアでは実装されていない</a>のでBTTでまかなっています。<br />
「Window Resize & Move」の「Move Window One Space/Desktop Left (Right)」はアクティブなウィンドウを左もしくは右のデスクトップに移動させることができます。<br />
筆者は「Option+Shift+B or F」に左と右の移動を割り当てています。<br />
<br />
<h2>
番外編:BTTの設定を他のマシンと共有する</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig6JmS44qnqHPlMZT1h13s3EZcbcC0LeW-zlLJMJO3BW_ZN6rIEUWWsfIpFq8T0zbBCNRjfZiCDHvJCdb-1sC6YzsviY8An_P9JbSu_JbcOICwlAW0pM69enIcIchyphenhypheny6OsD_8TTMzSWJwf/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-04-18+20.46.14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig6JmS44qnqHPlMZT1h13s3EZcbcC0LeW-zlLJMJO3BW_ZN6rIEUWWsfIpFq8T0zbBCNRjfZiCDHvJCdb-1sC6YzsviY8An_P9JbSu_JbcOICwlAW0pM69enIcIchyphenhypheny6OsD_8TTMzSWJwf/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-04-18+20.46.14.png" width="320" /></a></div>
<br />
巷ではDropboxなどを使ってBTTのサポートファイルを同期させて、実際のサポートファイルの場所にはそのシンボリックリンクを貼るようなやり方が書かれていますが、左下の方にあるPresetsのExportで設定ファイルを出力できます。<br />
これで出力されるファイルを何かしらのソフトで同期して、他のマシンではこのファイルをImportすれば同じ設定で使えます。<br />
あまり知られていない気がしたので書きました。<br />
<br />
<h2>
おわりに</h2>
違ってたら教えてください。<br />
<div id="SL_balloon_obj" style="display: none;">
<div id="SL_button" style="background: transparent url("chrome://imtranslator/content/img/util/imtranslator-s.png") repeat scroll 0% 0%; cursor: pointer; display: block; height: 24px; position: absolute; width: 24px;">
</div>
<div id="SL_shadow_translation_result2" style="display: none;">
</div>
<div id="SL_shadow_translator">
<div id="SL_providers">
<div class="SL_BL_LABLE_ON" id="SL_P0" title="Google">
G</div>
<div class="SL_BL_LABLE_ON" id="SL_P1" title="Microsoft">
M</div>
<div class="SL_BL_LABLE_ON" id="SL_P2" title="Translator">
T</div>
</div>
<div id="SL_planshet" style="background: rgb(244, 245, 245) url("chrome://imtranslator/content/img/util/bg2.png") repeat scroll 0% 0%;">
<div id="SL_TB">
<div id="bubblelogo" style="background: transparent url("chrome://imtranslator/content/img/util/imtranslator-s.png") repeat scroll 0% 0%; cursor: pointer; display: block; height: 24px; position: absolute; width: 24px;">
</div>
<table id="SL_tables"><tbody>
<tr><td align="right" width="10%"><input id="SLloc" title="Lock-in language" type="checkbox" /></td><td align="left" width="20%"><select id="SL_lng_from"><option value="auto">Detect language</option><option value="af">Afrikaans</option><option value="sq">Albanian</option><option value="ar">Arabic</option><option value="hy">Armenian</option><option value="az">Azerbaijani</option><option value="eu">Basque</option><option value="be">Belarusian</option><option value="bn">Bengali</option><option value="bs">Bosnian</option><option value="bg">Bulgarian</option><option value="ca">Catalan</option><option value="ceb">Cebuano</option><option value="ny">Chichewa</option><option value="zh-CN">Chinese (Simplified)</option><option value="zh-TW">Chinese (Traditional)</option><option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option><option value="nl">Dutch</option><option value="en">English</option><option value="eo">Esperanto</option><option value="et">Estonian</option><option value="tl">Filipino</option><option value="fi">Finnish</option><option value="fr">French</option><option value="gl">Galician</option><option value="ka">Georgian</option><option value="de">German</option><option value="el">Greek</option><option value="gu">Gujarati</option><option value="ht">Haitian Creole</option><option value="ha">Hausa</option><option value="iw">Hebrew</option><option value="hi">Hindi</option><option value="hmn">Hmong</option><option value="hu">Hungarian</option><option value="is">Icelandic</option><option value="ig">Igbo</option><option value="id">Indonesian</option><option value="ga">Irish</option><option value="it">Italian</option><option value="ja">Japanese</option><option value="jw">Javanese</option><option value="kn">Kannada</option><option value="kk">Kazakh</option><option value="km">Khmer</option><option value="ko">Korean</option><option value="lo">Lao</option><option value="la">Latin</option><option value="lv">Latvian</option><option value="lt">Lithuanian</option><option value="mk">Macedonian</option><option value="mg">Malagasy</option><option value="ms">Malay</option><option value="ml">Malayalam</option><option value="mt">Maltese</option><option value="mi">Maori</option><option value="mr">Marathi</option><option value="mn">Mongolian</option><option value="my">Myanmar (Burmese)</option><option value="ne">Nepali</option><option value="no">Norwegian</option><option value="fa">Persian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="pa">Punjabi</option><option value="ro">Romanian</option><option value="ru">Russian</option><option value="sr">Serbian</option><option value="st">Sesotho</option><option value="si">Sinhala</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option value="so">Somali</option><option value="es">Spanish</option><option value="su">Sundanese</option><option value="sw">Swahili</option><option value="sv">Swedish</option><option value="tg">Tajik</option><option value="ta">Tamil</option><option value="te">Telugu</option><option value="th">Thai</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="ur">Urdu</option><option value="uz">Uzbek</option><option value="vi">Vietnamese</option><option value="cy">Welsh</option><option value="yi">Yiddish</option><option value="yo">Yoruba</option><option value="zu">Zulu</option></select></td><td align="center" width="5%"><div align="center" id="SL_switch_b" style="background: transparent url("chrome://imtranslator/content/img/util/switchb.png") repeat scroll 0% 0%; cursor: pointer; display: block; height: 10px; width: 10px;" title="Switch languages">
</div>
</td><td align="left" width="20%"><select id="SL_lng_to"><option value="af">Afrikaans</option><option value="sq">Albanian</option><option value="ar">Arabic</option><option value="hy">Armenian</option><option value="az">Azerbaijani</option><option value="eu">Basque</option><option value="be">Belarusian</option><option value="bn">Bengali</option><option value="bs">Bosnian</option><option value="bg">Bulgarian</option><option value="ca">Catalan</option><option value="ceb">Cebuano</option><option value="ny">Chichewa</option><option value="zh-CN">Chinese (Simplified)</option><option value="zh-TW">Chinese (Traditional)</option><option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option><option value="nl">Dutch</option><option value="en">English</option><option value="eo">Esperanto</option><option value="et">Estonian</option><option value="tl">Filipino</option><option value="fi">Finnish</option><option value="fr">French</option><option value="gl">Galician</option><option value="ka">Georgian</option><option value="de">German</option><option value="el">Greek</option><option value="gu">Gujarati</option><option value="ht">Haitian Creole</option><option value="ha">Hausa</option><option value="iw">Hebrew</option><option value="hi">Hindi</option><option value="hmn">Hmong</option><option value="hu">Hungarian</option><option value="is">Icelandic</option><option value="ig">Igbo</option><option value="id">Indonesian</option><option value="ga">Irish</option><option value="it">Italian</option><option value="ja">Japanese</option><option value="jw">Javanese</option><option value="kn">Kannada</option><option value="kk">Kazakh</option><option value="km">Khmer</option><option value="ko">Korean</option><option value="lo">Lao</option><option value="la">Latin</option><option value="lv">Latvian</option><option value="lt">Lithuanian</option><option value="mk">Macedonian</option><option value="mg">Malagasy</option><option value="ms">Malay</option><option value="ml">Malayalam</option><option value="mt">Maltese</option><option value="mi">Maori</option><option value="mr">Marathi</option><option value="mn">Mongolian</option><option value="my">Myanmar (Burmese)</option><option value="ne">Nepali</option><option value="no">Norwegian</option><option value="fa">Persian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="pa">Punjabi</option><option value="ro">Romanian</option><option value="ru">Russian</option><option value="sr">Serbian</option><option value="st">Sesotho</option><option value="si">Sinhala</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option value="so">Somali</option><option value="es">Spanish</option><option value="su">Sundanese</option><option value="sw">Swahili</option><option value="sv">Swedish</option><option value="tg">Tajik</option><option value="ta">Tamil</option><option value="te">Telugu</option><option value="th">Thai</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="ur">Urdu</option><option value="uz">Uzbek</option><option value="vi">Vietnamese</option><option value="cy">Welsh</option><option value="yi">Yiddish</option><option value="yo">Yoruba</option><option value="zu">Zulu</option></select></td><td align="center" width="5%"></td><td align="center" width="6%"><div id="SL_TTS_voice" style="background: transparent url("chrome://imtranslator/content/img/util/tts-voice.png") repeat scroll 0% 0%;" title="Listen">
</div>
</td><td align="center" width="6%"><div id="SL_copy" style="background: transparent url("chrome://imtranslator/content/img/util/copy_hand.png") repeat scroll 0% 0%;" title="Copy translation">
</div>
</td><td align="center" width="6%"><div id="SL_bbl_font_patch">
</div>
<div id="SL_bbl_font" style="background: transparent url("chrome://imtranslator/content/img/util/font-off.png") repeat scroll 0% 0%;" title="Font size">
</div>
</td><td align="center" width="6%"><div id="SL_TH" style="background: transparent url("chrome://imtranslator/content/img/util/history.png") repeat scroll 0% 0%;" title="Translation History">
</div>
</td><td width="10%"></td><td align="right" width="6%"><div id="SL_pin" style="background: transparent url("chrome://imtranslator/content/img/util/pin-off.png") repeat scroll 0% 0%; cursor: pointer; display: block; height: 16px; width: 16px;" title="Pin pop-up bubble">
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div id="SL_shadow_translation_result" style="background: rgb(255, 255, 255) url("chrome://imtranslator/content/img/util/bg.png") repeat scroll 0% 0%;">
</div>
<div id="SL_loading" style="background: transparent url("chrome://imtranslator/content/img/util/indicator.gif") repeat scroll 0% 0%; display: block; height: 35px; margin-left: 180px; margin-top: -40px; position: absolute; width: 35px;">
</div>
<div id="SL_player2">
</div>
<div id="SL_alert100" style="background: transparent url("chrome://imtranslator/content/img/util/bg2.png") repeat scroll 0% 0%;">
Text-to-speech function is limited to 100 characters</div>
<div id="SL_bbl_donate" style="background: transparent url("chrome://imtranslator/content/img/util/donate2.png") repeat scroll 0% 0%;" title="Make a small conribution">
</div>
<div id="SL_Balloon_options" style="background: rgb(255, 255, 255) url("chrome://imtranslator/content/img/util/bg3.png") repeat scroll 0% 0%;">
<a href="https://www.blogger.com/blogger.g?blogID=6377479828613065117#" id="OPlnk" title="Show options">Options</a> : <a href="https://www.blogger.com/blogger.g?blogID=6377479828613065117#" id="HISTlnk" title="Translation History">History</a> : <a href="http://about.imtranslator.net/tutorials/presentations/imtranslator-translator-for-firefox/popup-bubble-application/" id="HELPlnk" target="_blank" title="Help">Help</a> : <a href="https://www.blogger.com/blogger.g?blogID=6377479828613065117#" id="FBlnk" title="Feedback">Feedback</a><a href="https://www.blogger.com/blogger.g?blogID=6377479828613065117#" id="SL_Balloon_Close" title="Close">Close</a></div>
</div>
</div>
yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com1中華人民共和国 内モンゴル40.81739 111.7662900000000318.011837000000003 70.457696000000027 63.622943000000006 153.07488400000003tag:blogger.com,1999:blog-6377479828613065117.post-2958133186255949782016-04-07T18:02:00.001+09:002016-04-07T18:02:28.614+09:00【Emacs】find-fileの小技<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKg4ulcZOOBG4TwfatiB495TFGDP0ZM3EtYafNbbBzWeYPcZBZQrD41nu1THdhmbFKI-97Lipr4W1DgcVityZQ4U6M_OYwhtZBUrYgcSh3057lIXXkROIaE-lzrBDXiyMv3OIyCtqtibyh/s1600/kaisya_man_bad.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKg4ulcZOOBG4TwfatiB495TFGDP0ZM3EtYafNbbBzWeYPcZBZQrD41nu1THdhmbFKI-97Lipr4W1DgcVityZQ4U6M_OYwhtZBUrYgcSh3057lIXXkROIaE-lzrBDXiyMv3OIyCtqtibyh/s320/kaisya_man_bad.png" width="320" /></a></div>
<br />
<br />
<code>C-x C-f</code>もしくは<code>M-x find-file</code>でファイル選択するときの小技を紹介します。<br />
<br />
<a name='more'></a><br />
<h1>
サーバー上のファイルをローカルのEmacsで開く
</h1>
ファイル選択時に
<br />
<pre class="brush: plain;">/sshx:[ユーザー名]@[サーバー名]:[ファイル]
</pre>
でサーバー上のファイルを編集できます。
<br />
<h1>
sudo権限でファイルを開く
</h1>
<pre class="brush: plain;">/sudo::[ファイル名]
</pre>
でできます。
以上。yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com0場所不明70.754104172612685 -7.73437564.72323317261268 -28.388672 76.78497517261269 12.919922tag:blogger.com,1999:blog-6377479828613065117.post-80202754480993193172016-03-25T18:32:00.000+09:002016-03-25T18:32:21.967+09:00Mac OS Xのクリーンインストールで"This copy of ~ can't be verified"と出る時の対処法<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHzcbllwQ68fnYSm0pnF95MiXF3MUTlqr6VTL1PtvRxfMMZ7ew_0n2NisqXL4fYtmz8iSpBxebe4718wr63spb0Fqr2m0_h-4673uTPuPB6WE3y7CONhjPISNy-A1nCqcuDP8Jp7Z9nNOL/s1600/Dallas_Mavericks_logo.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHzcbllwQ68fnYSm0pnF95MiXF3MUTlqr6VTL1PtvRxfMMZ7ew_0n2NisqXL4fYtmz8iSpBxebe4718wr63spb0Fqr2m0_h-4673uTPuPB6WE3y7CONhjPISNy-A1nCqcuDP8Jp7Z9nNOL/s320/Dallas_Mavericks_logo.svg.png" width="320" /></a></div>
OS Xのクリーンインストールをするときには、インストーラが入ったUSB等を使う人が多いかと思います。<br />
<br />
インストーラUSBを使ってクリーンインストールを行う際に<br />
<i>"This copy of the install OS X ********* application can't be verified. It may have been corrupted or tampered with during download"</i><br />
というエラーが出る場合があります。<br />
今回はこの問題の解決法について紹介します。<br />
<br />
このエラーが出る原因は<br />
①本当にインストーラが破損している<br />
②被インストールMacの時刻設定がおかしい<br />
の2つです。<br />
①の場合は、もう一度App Storeからインストーラをダウンロードして、インストーラUSBを作り直しましょう。<br />
②についてですが、クリーンインストールするMacの時刻が入れるOS Xのリリース以前に設定されている場合、このエラーがでるようです。<br />
(参照
<a href="http://osxdaily.com/2015/01/19/fix-os-x-install-errors-cant-be-verified-error-occurred-preparing-mac/" title="Fixing OS X Install Errors “can’t be verified” and “error occurred while preparing the installation”">Fixing OS X Install Errors “can’t be verified” and “error occurred while preparing the installation”</a>)
<br />
<br />
ターミナルで<br />
<pre class="brush: plain;">date
</pre>
というコマンドを打てばMacで設定されている日付を確認できます。<br />
表示される日付がおかしい(1970年とかになってる)ようなら、以下のように日付設定を変えましょう。<br />
<pre class="brush: plain;">date 0324235916
</pre>
この例では3月24日23:59、2016年に設定してあります。<br />
このコマンドで現在の日付に合わせて上げればOKです。<br />
<br />
最新のOS XをダウンロードしてUSB経由でクリーンインストールする場合は、<br />
以上の方法で基本的には解決できるはずです。<br />
しかし、<u>Mavericks等の過去のバージョンを入れようとしている人</u>は注意が必要です。<br />
<br />
2016年2月14日にAppleがOS Xにおける認証システムをアップデートしたらしく、<b>この日以前にダウンロードしたOS Xインストーラを使うと<i>"This copy of ~"</i>というエラーが出るようです。</b><br />
(参照
<a href="http://arstechnica.com/apple/2016/03/psa-updated-apple-certificate-means-old-os-x-installers-dont-work-anymore/" title="PSA: Updated Apple certificate means old OS X installers don’t work anymore | Ars Technica">PSA: Updated Apple certificate means old OS X installers don’t work anymore | Ars Technica</a>)
<br />
しかし、このような場合でも先ほどのdateコマンドを使ってMacの日付を2016年2月14日以前に設定すれば、このエラーを回避することができます。(OSのリリース日以前にしないようにも気をつける)<br />
<br />
以上です。<br />
最新のOS Xが不満で以前のバージョンに戻そうとしている方、古いMacに古いOS Xを入れて使おうとしている人は気をつけましょう。<br />
<br />Anonymoushttp://www.blogger.com/profile/08537098865019364804noreply@blogger.com0マダガスカル-21.166483858206568 46.40625-24.979964858206568 41.242676 -17.353002858206569 51.569824tag:blogger.com,1999:blog-6377479828613065117.post-76395892868331086942016-03-23T17:04:00.003+09:002016-03-23T17:26:52.827+09:00dvipdfmx高速化<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.burgerkingjapan.co.jp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtJtDOZUpOs1VFiiP6U1U5BlQTpEAoi1gCwZR039GZ2154-cN46G67YAr5agiVCnpxrtHkgYbI8lDSmORDeMcN0vOOYEAp6DFYCaLx3nZ7c6zNEPhDiEyCeVJ0ffKBVTOFEeq7IbQZ0AVm/s800/gunyagunya_enpitsu.png" width="320" /></a></div>
<br />
<br />
dvipdfmx で pdf変換するとき,-I [数字] オプションを入れてあげると<br />
数字の時間分画像キャッシュが効いて2回目以降とても早くなる.<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">$ dvipdfmx -I 6 thesis</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>yoshizawahttp://www.blogger.com/profile/11155072607027679040noreply@blogger.com0一蘭の森33.5934713 130.2021173000000533.592644799999995 130.20085680000005 33.5942978 130.20337780000006tag:blogger.com,1999:blog-6377479828613065117.post-55061920953675259402016-03-14T08:56:00.000+09:002016-03-14T09:03:18.844+09:00LaTeXからPDF変換時の用紙サイズ<a href="http://ochiailab.blogspot.jp/2016/03/latex.html">前回のフォントの記事</a>に加えて、LaTeXから最終的な.pdfのファイルにした場合に、用紙サイズがおかしい時の対処方法もメモしておきます。<br />
<br />
<a name='more'></a><br />
【現在の用紙設定を確認する方法】<br />
TeXLiveマネージャのコマンドで確認できます。<br />
ターミナルを開き<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">$ tlmgr paper</span><br />
<br />
と入力するだけです。この結果で<br />
<blockquote class="tr_bq">
Current dvipdfmx paper size (from /usr/local/texlive/<span style="background-color: lime;">2015</span>/texmf-config/dvipdfmx/dvipdfmx.cfg): a4 <span style="color: red;">(←これ)</span></blockquote>
のように出れば、現在の用紙設定はA4です。<br />
※コンフィグファイルのパス(特に<span style="background-color: lime;"> 部 </span>)は利用環境によって異なります。<br />
<br />
<br />
【変更する方法】<br />
例えばA4にするには、ターミナルを開き<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">$ sudo tlmgr paper a4</span><br />
<br />
と入力するだけです。<br />
<br />
国際論文誌や国際学会の場合は「letter」に設定しましょう。<br />
<br />
<br />
***上記の方法がうまくいかない場合***<br />
エディタで先ほど表示されたコンフィグのパスを指定して開きます。<br />
開いたら下記に該当する箇所を探します。<br />
<br />
%% PDF Document Settings<br />
%%<br />
%% Papersize Option:<br />
%%<br />
%% p papersize-spec<br />
%%<br />
%% papersize-spec is 'paper-format' or length-pair, e.g., 'a4', 'letter',<br />
%% '20cm,30cm'. Recognized unit is 'cm', 'mm', 'bp', 'pt', 'in'.<br />
<br />
p a4 (<span style="color: blue;">←ここをa4やletterに設定する</span>)<br />
<br />
こうやって力わざで用紙サイズを変更する方法もあります。ykenhttp://www.blogger.com/profile/11229592291104906246noreply@blogger.com0tag:blogger.com,1999:blog-6377479828613065117.post-60202018651139790172016-03-09T16:06:00.002+09:002016-03-09T16:27:17.714+09:00LaTeXで太文字がうまく出ないときの対処方法<div class="separator" style="clear: both; text-align: center;">
<img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH5jjhsy5cPIKbRhh3jhJCMFVLB3P2sqXyT6vaFJdLXcgkspuwCVwMkSyXPR3vlvmeoz8BQEObYXrIZNHaC6fRbYFWWmWJO2F5oPrNkp_qtfZ90pH2LRP4a5xursdWhpcQYe6IFpHo7lLq/s320/20130618002053.jpg" width="320" /></div>
<br />
<span style="font-family: inherit;"><span style="font-size: small;">2月3月は卒業論文・修士論文など論文の時期ですね。</span></span><br />
<br />
<span style="font-family: inherit;"><span style="font-size: small;">LaTeXで投稿論文や学位論文を執筆して、platexなんかを使って.dviファイルへとコンパイルしたあと、最終的に.pdfファイルに変換した結果、太字がうまく出ない(下左図)なんてことはありませんか?</span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9Mzasnpt2MVPeTPurWI7PjGcSNkZLD4VRxIVE0p52K9zIE2alAmafMU5svaEsa0mVigo3EGNaHoampJ-M27j6JytkV6F2G8R2kL3LkOoRh5PsFysA2VpgMs-6jya8-_MebvsMgNDS35VL/s1600/master_thesis_%25E7%25B4%25B0%25E5%25AD%2597.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9Mzasnpt2MVPeTPurWI7PjGcSNkZLD4VRxIVE0p52K9zIE2alAmafMU5svaEsa0mVigo3EGNaHoampJ-M27j6JytkV6F2G8R2kL3LkOoRh5PsFysA2VpgMs-6jya8-_MebvsMgNDS35VL/s320/master_thesis_%25E7%25B4%25B0%25E5%25AD%2597.png" width="226" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUTohaKUVjwhEj21u1D7-M-8jIY4BUsDXJHU4kOFVig4uTmRZJZ4dmnHuHkIJon6UbzWiC7PTQ0Nvr9guuWxbgZMTXP_qapNol1Hud16tVHIMrY8pnud8aoVy9nKgS6LAcHM5JZos5QfHK/s1600/master_thesis_%25E5%25A4%25AA%25E5%25AD%2597.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUTohaKUVjwhEj21u1D7-M-8jIY4BUsDXJHU4kOFVig4uTmRZJZ4dmnHuHkIJon6UbzWiC7PTQ0Nvr9guuWxbgZMTXP_qapNol1Hud16tVHIMrY8pnud8aoVy9nKgS6LAcHM5JZos5QfHK/s320/master_thesis_%25E5%25A4%25AA%25E5%25AD%2597.png" width="226" /></a></div>
<a name='more'></a><span style="font-size: small;"><br /></span>
<span style="font-size: small;">この原因は、pdfにした時に必要なフォントが埋め込まれるのが一般的ですが、具体的なフォントが埋め込まれず、メタフォントが指定されるだけの場合があるからです。 </span><br />
<span style="font-size: small;">埋め込みフォントを見てこうなっていたら、確実にこれが原因でしょう。</span><br />
<span style="font-size: small;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1hMJQG8IablSaM4zYzgmnQynAPVoxppasIfnengRaEf0U1uRZl6RVlOR4hZwYVc2PgPNxNWo08Tq9bEyuTkVnQHPVSvY9YNvNSCi5n1afmaIek3G9M9CnnFPVDg9VK5yuiEOlLUwJ1QAh/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-03-09+15.04.35.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1hMJQG8IablSaM4zYzgmnQynAPVoxppasIfnengRaEf0U1uRZl6RVlOR4hZwYVc2PgPNxNWo08Tq9bEyuTkVnQHPVSvY9YNvNSCi5n1afmaIek3G9M9CnnFPVDg9VK5yuiEOlLUwJ1QAh/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-03-09+15.04.35.png" width="320" /></a></span></div>
<span style="font-size: small;"><br />そこでフォントを埋め込む設定を行います。</span><br />
<span style="font-size: small;"><span style="background-color: yellow;">※フォントにもライセンス等の権利が絡むのでむやみに埋め込むことは推奨できません。</span></span><br />
<span style="font-size: small;"><span style="background-color: yellow;">今回はあくまでも個人利用の範囲内でフォント埋め込みをする前提で行うとします。</span> </span><br />
<br />
<br />
<span style="font-size: small;">そもそも埋め込みフォントを設定する便利なコマンドやツールが用意されています。</span><br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";">「kanji-config-updmap」</span><span style="font-family: "helvetica neue";">(旧コマンド「updmap-setup-kanji」)で和文フォントの埋め込みの設定ができ、自動的にmapファイルというフォントの設定ファイルが生成されます。</span></span><br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";"> </span></span><br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";">ヒラギノを埋め込みたい場合は、ターミナルを開き</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">$ kanji-config-updmap hiragino</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">TeX Liveのバー</span>ジョンによっては</span></span><br />
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;"><br /></span></span>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">$ </span><span style="font-family: "helvetica neue";"><span style="font-family: "courier new" , "courier" , monospace;">updmap-setup-kanji hiragino</span></span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";">と入力します(パーミッションで蹴られたらsudoで行う必要あり)。</span></span><br />
<br />
<br />
<span style="font-size: small;"><span style="font-size: large;">今回は以上の方法では<span style="color: red;">うまくいかない場合の対処方法</span>を説明します。 </span></span><br />
<br />
<span style="font-size: small;"><b><span style="font-family: "helvetica neue";"> 1. ヒラギノフォントへのシンボリックリンクの作成</span></b></span><br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";"><span style="font-family: "helvetica neue";">dvipdfmxがヒラギノフォントを参照できるようにします。</span></span></span><br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";"><span style="font-family: "helvetica neue";">そのために、 </span> まずシンボリックリンクを入れるディレクトリを作成します。</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";">
<span style="font-family: "courier new" , "courier" , monospace;">$ sudo mkdir -p /usr/local/texlive/<span style="background-color: lime;">2015</span>/texmf-dist/fonts/opentype/public/hiragino </span></span></span><br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";">(<span style="background-color: lime;"> 部 </span>:バージョンによって適宜変更してください)</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";">※なお</span><span style="font-family: "helvetica neue";"><span style="font-family: "helvetica neue";">/usr/local/<span style="background-color: lime;"></span></span></span><span style="font-family: "helvetica neue";">texlive/texmf-local/......があるならその下に入れたほうが、TeX Live自身の更新によってファイルが上書きされるリスクを回避できます。</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";">ディレクトリ移動をして、シンボリックリンクを作成します。 </span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";"></span><span style="font-family: "courier new" , "courier" , monospace;">$ cd /usr/local/texlive/<span style="background-color: lime;">2015</span>/texmf-dist/fonts/opentype/public/hiragino
</span></span><br />
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">$ sudo ln -s "/Library/Fonts/ヒラギノ明朝 Pro W3.otf" ./HiraMinPro-W3.otf
</span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">$ sudo ln -s "/Library/Fonts/ヒラギノ明朝 Pro W6.otf" ./HiraMinPro-W6.otf
</span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">$ sudo ln -s "/Library/Fonts/ヒラギノ丸ゴ Pro W4.otf" ./HiraMaruPro-W4.otf
</span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">$ sudo ln -s "/Library/Fonts/ヒラギノ角ゴ Pro W3.otf" ./HiraKakuPro-W3.otf
</span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">$ sudo ln -s "/Library/Fonts/ヒラギノ角ゴ Pro W6.otf" ./HiraKakuPro-W6.otf
</span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">$ sudo ln -s "/Library/Fonts/ヒラギノ角ゴ Std W8.otf" ./HiraKakuStd-W8.otf
</span></span></div>
<br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";">リンクができたら、パッケージデータベースの更新を行います。</span></span><br />
<span style="font-size: small;"><span style="font-family: "helvetica neue";"><br /></span></span>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">$ sudo mktexlsr</span></span><br />
<span style="font-size: small;">または</span><br />
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">$ sudo texhash</span></span><br />
<br />
<b>2. <span style="font-size: small;"><span style="font-family: "helvetica neue";">埋め込みフォントの設定するmapファイルの書き換え</span></span></b><br />
<span style="font-size: small;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">フォントの設定ファイル
cid-x.mapにヒラギノフォントを設定するよう書き換えます。</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">まず適当なエディタで設定ファイルを開きます。</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">$ sudo emacs
/usr/local/texlive/<span style="background-color: lime;">2015</span>/texmf/fonts/map/dvipdfmx/cid-x.map</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">開いたファイルの中ほど辺りにあるrmlとgbm(メタフォント)の設定を変えます。</span></span><br />
<span style="font-size: small;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span style="font-family: "helvetica neue";"><br /></span></span></span>
<span style="font-size: small;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span style="font-family: "helvetica neue";">
</span></span></span><br />
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">%% Ryumin and GothicBBB found in PostScript printers:
</span></span></div>
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">% rml H Ryumin-Light<span style="color: #ff2600;"> (コメントアウトする)</span></span></span>
</div>
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">% gbm H GothicBBB-Medium <span style="color: #ff2600;">(コメントアウトする)</span></span></span>
</div>
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">% rmlv V Ryumin-Light<span style="color: #ff2600;"> (コメントアウトする)</span></span></span>
</div>
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">% gbmv V GothicBBB-Medium <span style="color: #ff2600;">(コメントアウトする)</span></span></span>
</div>
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">rml H HiraMinPro-W3.otf<span style="color: #0433ff;"> (追加する)</span></span></span>
</div>
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">gbm H HiraKakuPro-W6.otf<span style="color: #0433ff;"> (追加する)</span></span></span>
</div>
<div>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">rmlv V HiraMinPro-W3.otf<span style="color: #0433ff;"> (追加する)</span></span></span>
</div>
<div style="font-family: "Helvetica Neue";">
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">gbmv V HiraKakuPro-W6.otf<span style="color: #0433ff;"> (追加する)</span></span></span>
</div>
<span style="font-size: small;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span style="font-family: "helvetica neue";"> </span> </span></span><br />
<span style="font-size: small;"><b>3. dvipdfmxのコンフィグファイルの書き換え</b></span><br />
<span style="font-size: small;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">dvipdfmxによって読み込まれるmapファイルの設定を変更します。</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;">エディタで開きます</span></span><br />
<span style="font-size: small;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><br /></span></span>
<span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">$ sudo emacs
/usr/local/texlive/<span style="background-color: lime;">2015</span>/texmf-config/dvipdfmx/dvipdfmx.cfg</span></span><br />
<span style="font-size: small;"><span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif;"><span style="font-family: "helvetica neue"; font-size: 14px;"></span><span style="font-family: "helvetica neue";"></span></span> </span><br />
<div style="font-family: "Helvetica Neue";">
<span style="font-size: small;">このファイルの最後の辺りにある部分を書き換えます。 </span></div>
<div style="font-family: "Helvetica Neue";">
<span style="font-size: small;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;">%% teTeX 2.x and TeX Live using updmap (pdfTeX format)
</span></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;">f pdftex.map<span style="color: #0433ff;">(コメントアウトされてたら外す)</span></span></span>
</div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;"><br /></span></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;">%% Put additonal fontmap files here (usually for Type0 fonts)
</span></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;">f cid-x.map<span style="color: #0433ff;">(コメントアウトされてたら外す:これが追加フォントの設定)</span></span></span>
</div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;"><br /></span></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;">% the following file is generated by updmap(-sys) from the
</span></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;">% KanjiMap entries in the updmap.cfg file.
</span></span></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;">% f kanjix.map <span style="color: #ff2600;">(コメントアウトする)</span></span></span>
</div>
<span style="font-size: x-small;"><span style="font-family: inherit;"><br /></span></span>
<span style="font-size: x-small;"><span style="font-family: inherit;">※
kanjix.mapは「kanji-config-updmap」で和文フォントの埋め込みの設定をすると自動的に生成されるmapファイル</span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: inherit;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: inherit;"><span style="font-size: small;">以上の設定を行った上で、</span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;">最終的なpdfファイルのフォント属性がこうなっていたら成功です。</span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: inherit;"><span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitvYcGwqNP0qWEzN3-5PJkOZN3fmmsiMLm_hVAAmFzlbCOTeWNSdQ3DYP34iwy3f0HpvxN6A2SXBt37BpShsigPvPzYwmRqVYe0Owgr7riTvOP7WaYXDxWVXcLZR67616wThYVHdn-lxwu/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-03-09+15.04.00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitvYcGwqNP0qWEzN3-5PJkOZN3fmmsiMLm_hVAAmFzlbCOTeWNSdQ3DYP34iwy3f0HpvxN6A2SXBt37BpShsigPvPzYwmRqVYe0Owgr7riTvOP7WaYXDxWVXcLZR67616wThYVHdn-lxwu/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2016-03-09+15.04.00.png" width="320" /></a></span></span></div>
<br />
<br />ykenhttp://www.blogger.com/profile/11229592291104906246noreply@blogger.com0tag:blogger.com,1999:blog-6377479828613065117.post-2297376716790551642016-03-04T13:55:00.000+09:002016-06-22T20:24:37.411+09:00 【Emacs】flycheckでエラー、警告をソースコード中に表示する<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfXI7NHXYC8qxe-dKNGH19ZOtBUkArblK7_reWzoHL0rYa_qqs56ZF2N8ye7SpR_fuifs2VOz4tPDXEZhghnEVZxBnB47Wj_qZfe5RjHKvJRpqF6tgR6qWLOHUWEpXj6LChg1WyrxJL9js/s1600/trampoline_girl.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfXI7NHXYC8qxe-dKNGH19ZOtBUkArblK7_reWzoHL0rYa_qqs56ZF2N8ye7SpR_fuifs2VOz4tPDXEZhghnEVZxBnB47Wj_qZfe5RjHKvJRpqF6tgR6qWLOHUWEpXj6LChg1WyrxJL9js/s320/trampoline_girl.png" width="258" /></a></div>
<br />
Emacs上でシンタックスチェックするパッケージとしてはflymakeが有名ですが、より設定が簡単かつ柔軟にできるflycheckがその役割を台頭してきています。<br />
<br />
こんな感じです。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYA37WJDhp8J0ADsAHHQFEH30RH7YojHHCeKgH5pek0oI8Nj8nZ1RbNDxDZS5Iey3Me2uuDRX2pirzYgZ9g9G3QkuaOE0qdwkdgPCkMlC_xGCRDCARJYljaSYFU1NSP0ZRIdsJdL-kzc92/s1600/flycheck.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYA37WJDhp8J0ADsAHHQFEH30RH7YojHHCeKgH5pek0oI8Nj8nZ1RbNDxDZS5Iey3Me2uuDRX2pirzYgZ9g9G3QkuaOE0qdwkdgPCkMlC_xGCRDCARJYljaSYFU1NSP0ZRIdsJdL-kzc92/s320/flycheck.png" width="320" /></a></div>
<br />
まだflymakeも未導入の方はflycheckの方がおすすめですし、既にflymake導入済みの方もflycheckへの移行をおすすめします。<br />
<h2>
筆者がflycheckをおすすめする3つの理由</h2>
<h2>
<a name='more'></a></h2>
<h3>
いろんな言語に対応している</h3>
たった一行、<code>(global-flycheck-mode)</code>と書き込むだけでC/C++はもちろん、Python, LispやLaTeXにまで対応しています。<br />
<h3>
Windowsでも動いた</h3>
筆者はMacとWindowsでEmacsを利用しているのですが、WindowsだとMacで動作している一部のパッケージを設定変えずにそのまま利用することができません。<br />
以前使っていたflymakeがそのうちの一つだったのですが、flycheckはなんと同じ設定でWindows, Mac両方で動作します。<br />
筆者、大満足です。<br />
<br />
<h3>
設定が楽</h3>
一つ目の理由で書いた通り、一行の設定でいろんな言語に対応していますし、独自のシンタックスチェッカーの定義も簡単にできます。<br />
ソースコード編集中にシンタックスチェッカーを切り替えることもできます。<br />
<br />
もうflycheck使うしかないですよね?<br />
使いましょう。<br />
<br />
<h2>
インストール</h2>
MELPAにあるので簡単にインストールできます。<br />
<code>M-x list-packages</code>でflycheckを探してインストールしてもいいですし、
<br />
<br />
<pre class="brush: plain;">M-x package-install RET flycheck
</pre>
でもいけます。<br />
<br />
<h2>
設定&使い方</h2>
まずはエラーや警告間の移動の設定。
<br />
<pre class="brush: lisp;">(require 'flycheck)
(global-flycheck-mode)
(define-key global-map (kbd "\C-cn") 'flycheck-next-error)
(define-key global-map (kbd "\C-cp") 'flycheck-previous-error)
(define-key global-map (kbd "\C-cd") 'flycheck-list-errors)
</pre>
<code>C-c n</code>, <code>C-c p</code>でエラー・警告を行ったりきたりして、<code>C-c d</code>でエラー・警告の一覧を表示させます。<br />
基本的にこれだけで使えますが、初期設定のコンパイラが自分好みでない場合は独自にシンタックスチェッカーを定義できます。<br />
筆者はC++11に準拠した以下のような設定を使っています。<br />
<pre class="brush: lisp;">(flycheck-define-checker c/c++11
"A C/C++ checker using g++."
:command ("g++" "-Wall" "-Wextra" "-std=c++11" source)
:error-patterns ((error line-start
(file-name) ":" line ":" column ":" " Error: " (message)
line-end)
(error line-start
(file-name) ":" line ":" column ":" " Fatal Error: " (message)
line-end)
(warning line-start
(file-name) ":" line ":" column ":" " Warning: " (message)
line-end))
:modes (c-mode c++-mode))
</pre>
3行目でコンパイル方法を定義してあげています。<br />
他にもオプション付けたかったら<code>" "</code>で囲んだものを列挙していけばいいです。<br />
4--12行目が、コンパイラが出力するエラーや警告のパーサーを定義しています。<br />
<br />
ソースコード開いて、自分が定義したチェッカーを使いたい場合は<br />
<pre class="brush: plain;">M-x flycheck-select-checker RET c/c++11
</pre>
とやればおkです。
<br />
<h2>
おわりに</h2>
導入から設定までが簡単なflycheckをみなさんも是非使ってみてください。<br />
<br />
<h1>
6/22 追記</h1>
<h2>
オリジナルのチェッカーをデフォルトに設定する</h2>
以下のようにすると自分で作った<code>c/c++11</code>というチェッカーがC++モードのデフォルトのチェッカーになります。
<pre class="brush: lisp;">
(add-hook 'c++-mode-hook
'(lambda()
(flycheck-select-checker 'c/c++11)))
</pre>
<br />
<h2>
flycheckに標準搭載のc/c++-clang, c/c++-gccをC++11に準拠させる</h2>
上述のようにオリジナルのチェッカーを作らなくても、flycheckに標準搭載されているチェッカーをC++11に対応させることができました。<br />
以下のように記述するだけです。
<pre class="brush: lisp;">
(add-hook 'c++-mode-hook (lambda()
(setq flycheck-gcc-language-standard "c++11")
(setq flycheck-clang-language-standard "c++11")))
</pre>
<br />
ただ筆者の場合、Homebrew版のLLVMのclangバイナリに<code>clang</code>のエイリアスが割り当てられており、これだと色々不都合があった<sup><a href="#fn1" id="ref1">1</a></sup>
のでflycheckでは<code>/usr/bin/clang</code>を使うようにしました。
以下の設定を書き込んでおきます。
<pre class="brush: lisp;">
(setq flycheck-c/c++-clang-executable "/usr/bin/clang")</pre>
<br />
これで快適に使用できます。
<br />
<br />
<div id="footnotes">
<div class="footdef"><sup><a name="fn1" href="#fn1">1</a></sup><code>llvm-config --cflags --libs</code>などを付けないとパスが通らない</div>
</div>yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com1アメリカ合衆国 〒39667 ミシシッピ州 ノクソ31.1354566 -90.0461975.6134221000000011 -131.354791 56.6574911 -48.737603000000007tag:blogger.com,1999:blog-6377479828613065117.post-53130356990855338592016-03-03T16:31:00.001+09:002016-03-09T16:36:07.092+09:00博士課程修了までの個人的なスケジュール<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8v7EJoazK2vyNxY6LuLPdD1fnO-yvFzWwcv2Pn5ZuHxHu7jmzIICIdRTbmTLhW8nI3ZTkJkk4MzgLlTQA3hdLyLR2eNffyLtBgpRvTogAWsMYyGA1_14RDb_KIO2me6h3nzHZHsfNcQMv/s1600/20120908214912f7b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8v7EJoazK2vyNxY6LuLPdD1fnO-yvFzWwcv2Pn5ZuHxHu7jmzIICIdRTbmTLhW8nI3ZTkJkk4MzgLlTQA3hdLyLR2eNffyLtBgpRvTogAWsMYyGA1_14RDb_KIO2me6h3nzHZHsfNcQMv/s1600/20120908214912f7b.jpg" /></a></div>
<br />
今後の博士課程修了者への参考として私のスケジュールをメモしておきます<br />
(博士課程3年目3月修了予定)<br />
<br />
<span style="color: red;">10月14日</span><br />
<span style="color: red;"> 先生から博士論文審査の手続き開始の連絡をいただく</span><br />
本日中に博士論文題目案(英文とその和訳)を送るようにとの指示<br />
また、今後のスケジュールについても以下のように述べられていた<br />
<span style="font-family: "helvetica"; font-size: 12px; line-height: normal;"> </span><span style="color: #444444; font-family: inherit;"><span style="font-size: 12px; line-height: normal;">10/20まで 論文の構成案の提出 </span><br style="font-size: 12px; line-height: normal;" /><span style="font-size: 12px; line-height: normal;"> 11月上旬 予備審査用の論文完成</span><br style="font-size: 12px; line-height: normal;" /><span style="font-size: 12px; line-height: normal;"> 11月上旬から下旬 予備審査</span><br style="font-size: 12px; line-height: normal;" /><span style="font-size: 12px; line-height: normal;"> 12月中旬 博士論文提出(工学府宛)</span><br style="font-size: 12px; line-height: normal;" /><span style="font-size: 12px; line-height: normal;"> 1月下旬~2月上旬 公聴会・本審査委員会 開催</span></span><br />
<br />
10月20日<br />
論文の構成案をメールにて送信<br />
<br />
10月27日<br />
予備審査の日程が11月12日になったとの連絡<br />
11月5日までには博士論文のドラフトを完成させる必要ありとのこと<br />
<br />
10月28日<br />
審査員の先生一人が予備審査当日に都合が合わないということから、その方だけ前日に行うこととなる旨の連絡<br />
<br />
11月5日<br />
何度か論文をチェックしていただき、各審査員の先生にメールにて原稿を送信<br />
<br />
11月11日<br />
予備審査会予定の連絡を受ける<br />
<br />
<span style="color: red;">11月12日</span><br />
<span style="color: red;"> 予備審査会</span><br />
<br />
11月19日<br />
ミーティングにて予備審査で頂いたコメントの確認<br />
<br />
11月25日<br />
ミーティングにて打ち合わせしたコメントとそれに対する対処方法をまとめたリストを翌日までに送信するように指示<br />
<br />
12月1日<br />
本審査設置提案承認の連絡<br />
学位申請手続きを行うようにとの指示<br />
翌日電子版の博士書類様式をいただく<br />
<br />
<span style="color: red;">12月10日</span><br />
<span style="color: red;"> 工学府へ博士論文原稿と書類提出</span><br />
<br />
12月22日<br />
本審査の日程が2月9日に決定したとの連絡<br />
その2週間前までに論文原稿を完成させ、各審査員の先生へ渡すように指示<br />
OBや関連する方々への周知連絡指示<br />
公聴会用スライドと審査会用スライドを作るように指示<br />
<br />
1月中<br />
博士論文の訂正<br />
審査員の先生の一人が当日出席できないとの連絡<br />
代わりに2月4日に個別審査していただくことをその先生と連絡をとって決定<br />
<br />
2月4日<br />
個別審査 頂いたコメントを忘れずにメモするように指示<br />
<br />
<span style="color: red;">2月9日</span><br />
<span style="color: red;"> 本審査 </span><br />
<span style="color: red;"> 各審査員の先生分の博士論文印刷</span><br />
<span style="color: red;"> 配布資料としてスライド等を用意</span><br />
<br />
2月22日<br />
博士論文製本のための業者さんへ連絡を取る<br />
<br />
3月4日<br />
必要な部数を印刷し、業者へ引き渡し<br />
<br />
3月9日<br />
業者から製本版受け取り予定<br />
<br />
<span style="color: red;">3月11日</span><br />
<span style="color: red;"> リポジトリ登録申請締め切り</span><br />
<br />
<span style="color: red;">3月14日</span><br />
<span style="color: red;"> データをまとめて提出予定</span><br />
<br />
<br />
以上となります。<br />
関係ない人には関係ない内容ですが、一応参考になればと思い記させていただきました。何か問題等ありましたらご連絡ください。とにかくいきなり連絡が来るので、前もって準備をしておくことを強くおすすめします。<br />
<br /></div>
yo-dahttp://www.blogger.com/profile/11669698204901726376noreply@blogger.comtag:blogger.com,1999:blog-6377479828613065117.post-64398617395969217452015-10-16T20:22:00.000+09:002015-10-16T20:29:36.090+09:00【無料】Audacityでメディアデータをグリッチさせる<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7mIhES3W3D0GlPT1zlAmtdKlMBCB0T1I-vq_5ven0XSN7j_bpJcT3Vi7D_53Qwyq20TzCD3-wJXq5sGoD9Y2AP7jfhDoz1ejJef22eYiF_m2RW1Q9ElplSHdkGH9hR2OGEg4OaZlc9ynS/s1600/giphy2.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7mIhES3W3D0GlPT1zlAmtdKlMBCB0T1I-vq_5ven0XSN7j_bpJcT3Vi7D_53Qwyq20TzCD3-wJXq5sGoD9Y2AP7jfhDoz1ejJef22eYiF_m2RW1Q9ElplSHdkGH9hR2OGEg4OaZlc9ynS/s1600/giphy2.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
オーディオファイルの編集ソフトとして有名なフリーソフト、Audacityですがデータベンディングソフトとしても使えます。<br />
<a href="http://audacityteam.org/" title="Audacity: Free Audio Editor and Recorder">Audacity: Free Audio Editor and Recorder</a>
<br />
<a href="http://www.forest.impress.co.jp/library/software/audacity/" title="Audacity - 窓の杜ライブラリ">Audacity - 窓の杜ライブラリ</a>
<br />
<br />
MP4ビデオとかJPEG画像とか割りとどんなファイル形式でもグリッチさせられます。<br />
やり方は以下。<br />
<br />
<a name='more'></a><br />
<br />
<h2>
1.ファイルをRAWデータとして読み込む</h2>
以下のようにメニューの<b>「ファイル」→「取り込み」→「ロー (Raw) データの取り込み 」</b>からファイルを読み込みます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEVG7mMhKiTcXjRFgLVegQk4SPKcTpnWzQESeuxuDoY7TTKx5NiOvw8jstD0SEX_sY-eZpvzBBnzSOaGUFzSfKDkBcJfzIkD5r_3_zUljhWIIxRXaSNZfuk_Q_WcTVDXhGwyjJAgtuC21F/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.22.09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEVG7mMhKiTcXjRFgLVegQk4SPKcTpnWzQESeuxuDoY7TTKx5NiOvw8jstD0SEX_sY-eZpvzBBnzSOaGUFzSfKDkBcJfzIkD5r_3_zUljhWIIxRXaSNZfuk_Q_WcTVDXhGwyjJAgtuC21F/s400/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.22.09.png" width="400" /></a></div>
<br />
このときに取り込みオプションが選択できるので以下のように<b>エンコーディングを「A-Law」</b>にします。<br />
他は多分そのままで大丈夫です。<br />
この辺の設定次第でグリッチ具合が変わるっぽいですが未検証です。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKGeek7VvyGn1lqvs4pjPJ_pqOgGN7hVLBq6ghIDMWxlVLkSiirmataEUIyaf0z3aAxCsKfjO0XYAMWxFQ0kRpFkADCH59dKw0-xTVzwyEyBWtoai94dmiczOFKpIpEiH-5DEK4Wk-Xf44/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.23.53.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKGeek7VvyGn1lqvs4pjPJ_pqOgGN7hVLBq6ghIDMWxlVLkSiirmataEUIyaf0z3aAxCsKfjO0XYAMWxFQ0kRpFkADCH59dKw0-xTVzwyEyBWtoai94dmiczOFKpIpEiH-5DEK4Wk-Xf44/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.23.53.png" /></a></div>
<br />
<h2>
2.データをいじる</h2>
データの読み込みに成功したら画面上に波形が出てきます。<br />
そしたら適当な範囲を選択します。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggmWWpNq5iTeIzFflp18vVGnRXbI78KyPlyiFj48arosHFsv9PlM-aU5s4I-B2FggPtQ3YYPPkjWhB4lhw6N1AMRhcds8h0vNNO8l_5C1lHBMLmEGTrcYt-eTpwlt4qpRTYy02PUj8SKKE/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.34.11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggmWWpNq5iTeIzFflp18vVGnRXbI78KyPlyiFj48arosHFsv9PlM-aU5s4I-B2FggPtQ3YYPPkjWhB4lhw6N1AMRhcds8h0vNNO8l_5C1lHBMLmEGTrcYt-eTpwlt4qpRTYy02PUj8SKKE/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.34.11.png" width="320" /></a></div>
<br />
<b>データの前方には多分ヘッダがあったりしてその辺いじると再生すらできなくなると思うので気をつけた方がいいです。</b><br />
<br />
次に適当にエフェクトを加えます。<br />
今回は<b>リバーブ</b>にします。<br />
波形の長さを変える系のエフェクトは避けた方が良くて、リバーブ以外にはイコライゼーションとかがいいかもしれません。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5Qy5V3oX9ZoGboqSzOqVDW7cWzcSqhi2dEWRx8FsBavqCBhCsy4xYhsxD8E3RkNKHc1RFuhXhAtr-UKVzoaJZCXMi7MYnEgqO-Z3KL3EGD86Vpf9v0xDsBI5nAem9PDWNym8sSnTlgqmx/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.34.52.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5Qy5V3oX9ZoGboqSzOqVDW7cWzcSqhi2dEWRx8FsBavqCBhCsy4xYhsxD8E3RkNKHc1RFuhXhAtr-UKVzoaJZCXMi7MYnEgqO-Z3KL3EGD86Vpf9v0xDsBI5nAem9PDWNym8sSnTlgqmx/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.34.52.png" width="155" /></a></div>
<br />
これでデータがベンディングされました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNRuTHBlQ3jTobCk8CFrMw1fYe8PogzXR9-d-TNv7EE1xwr4ZRSE8ackBOfh4maYc4tnMnuzTpI640JSnQTvzEBVT4YT8-QxFKK3YN_MZw2QTfgvQQY412ji9ln4QXkyed-aTVOSwnDtwU/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.35.00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNRuTHBlQ3jTobCk8CFrMw1fYe8PogzXR9-d-TNv7EE1xwr4ZRSE8ackBOfh4maYc4tnMnuzTpI640JSnQTvzEBVT4YT8-QxFKK3YN_MZw2QTfgvQQY412ji9ln4QXkyed-aTVOSwnDtwU/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.35.00.png" /></a></div>
<br />
<h2>
3.データを出力する</h2>
あとはデータを書き出します。<br />
<b>「ファイル」→「オーディオの書き出し」</b>を選択します。 <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga4dSMY3np4o1IR3Z-YFp-qUs7LYEJqO-VgwYoEqXTLtzWs7wz-4GG3gzRepC9bKuZN89q3PjLxzhqKJFHK4AYwslW5HkJ3IoeOhtgGVPxe2lMSkYjE7yHxGSTjWQfOxCZgy43K5lNP5tP/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.35.21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga4dSMY3np4o1IR3Z-YFp-qUs7LYEJqO-VgwYoEqXTLtzWs7wz-4GG3gzRepC9bKuZN89q3PjLxzhqKJFHK4AYwslW5HkJ3IoeOhtgGVPxe2lMSkYjE7yHxGSTjWQfOxCZgy43K5lNP5tP/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.35.21.png" width="275" /></a></div>
出力設定は、以下のように<b>フォーマットは「その他の非圧縮ファイル」</b>としてさらにオプションで<b>ヘッダを「RAW (header-less)」、エンコーディングを「A-Law」</b>にします。<br />
ファイル名はなんでもいいですが、<b>拡張子は元ファイルと同じやつ</b>にします。 <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEify4PN4Z5kcWvrN3ddD85K_xc3AoHE2T4cuSyUfFaAhWLb1oqT-jPzenLbOxno79XGObp-gfzYNWMAzecZz90et7BN-LxTxjguNc1gyvasUN3HGCyswKHNxVwC-VojI8oRnSwsJV0qcuTA/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.36.18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEify4PN4Z5kcWvrN3ddD85K_xc3AoHE2T4cuSyUfFaAhWLb1oqT-jPzenLbOxno79XGObp-gfzYNWMAzecZz90et7BN-LxTxjguNc1gyvasUN3HGCyswKHNxVwC-VojI8oRnSwsJV0qcuTA/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-10-16+19.36.18.png" width="320" /></a></div>
そして保存。<br />
はい、以上。<br />
こういうの作りたいですね。<br />
<div id="fb-root">
</div>
<script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.3"; fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));</script><br />
<div class="fb-video" data-allowfullscreen="1" data-href="/hyperspeedhallucinations/videos/vb.621073034627846/891490027586144/?type=3">
<div class="fb-xfbml-parse-ignore">
<blockquote cite="https://www.facebook.com/hyperspeedhallucinations/videos/891490027586144/">
<a href="https://www.facebook.com/hyperspeedhallucinations/videos/891490027586144/"></a><br />
boo!<br />
Posted by <a href="https://www.facebook.com/hyperspeedhallucinations">Hyperspeed Hallucinations</a> on 2015年10月14日</blockquote>
</div>
</div>
<br />
<br />
他にもいい感じの設定があったら教えてください。<br />
<br />
<h3>
参考サイト</h3>
<a href="http://clickbecause.tumblr.com/post/79287426154/databending-video-with-audacity-fx" title="clickbecause / Databending Video with Audacity (&FX!)">clickbecause / Databending Video with Audacity (&FX!)</a>yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com0モロッコ31.791702 -7.092620000000010818.0550195 -27.74691700000001 45.5283845 13.561676999999989tag:blogger.com,1999:blog-6377479828613065117.post-90925270858097454442015-04-09T17:28:00.000+09:002015-04-09T17:28:58.627+09:00[Emacs]view-mode を駆使して横着にカーソルを移動させる<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsz4xfZth-KdmEcQPJEq57iYx09z6ZiYVL734rr_cdcaKTzEGJSoUPAJx4eWIjbAt_L0egtRbyvCxC4V7BnQAk0yqo3ZFbmhpefws8VHtFnP6KOy50BmoIQXzGCGPsOG965U3jKk3fxg7B/s1600/0-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsz4xfZth-KdmEcQPJEq57iYx09z6ZiYVL734rr_cdcaKTzEGJSoUPAJx4eWIjbAt_L0egtRbyvCxC4V7BnQAk0yqo3ZFbmhpefws8VHtFnP6KOy50BmoIQXzGCGPsOG965U3jKk3fxg7B/s1600/0-1.jpg" height="320" width="226" /></a></div>
<h1>
はじめに</h1>
他人のコードとかを読むとき楽してカーソル移動させたいなと感じて、<a href="http://www.emacswiki.org/emacs/Evil">Evil mode</a> などを使ってみたんですが vi のコマンドをあんまり知らないので不便でした。<br />
Emacs 内蔵の view-mode を上手く利用すると hjkl キーでのカーソル移動できたりページのスクロールなども 1 キーでできたりすることを知ったので紹介します。<br />
ちなみにここで紹介するやり方を使えば view-mode の有効化・無効化が瞬時にできるのでコードリーディングのときだけでなく編集にも役立てます。<br />
<br />
<a name='more'></a><br />
<h1>
Emacs の設定</h1>
参考サイトほぼ丸パクリの設定は以下です。<br />
<br />
<pre class="brush: lisp;">(setq view-read-only t)
(defvar pager-keybind
`(
("h" . backward-char)
("l" . forward-char)
("j" . next-line)
("k" . previous-line)
("S-SPC" . scroll-down)
(" " . scroll-up)
("@" . set-mark-command)
("a" . beginning-of-buffer)
("e" . end-of-buffer)
("f" . forward-word)
("b" . backward-word)
("]" . forward-word)
("[" . backward-word)
("}" . forward-paragraph)
("{" . backward-paragraph)
("n" . ,(lambda () (interactive) (scroll-up 1)))
("p" . ,(lambda () (interactive) (scroll-down 1)))
("N" . ,(lambda () (interactive) (scroll-up 10)))
("P" . ,(lambda () (interactive) (scroll-down 10)))
("c" . scroll-other-window-down)
("v" . scroll-other-window)
("(" . point-undo)
(")" . point-redo)
("J" . jaunte)
))
(defun define-many-keys (keymap key-table &optional includes)
(let (key cmd)
(dolist (key-cmd key-table)
(setq key (car key-cmd)
cmd (cdr key-cmd))
(if (or (not includes) (member key includes))
(define-key keymap key cmd))))
keymap)
(defun view-mode-hook0 ()
(define-many-keys view-mode-map pager-keybind)
(hl-line-mode 1)
(define-key view-mode-map " " 'scroll-up))
(add-hook 'view-mode-hook 'view-mode-hook0)
;; 書き込み不能なファイルは view-mode で開くように
(defadvice find-file
(around find-file-switch-to-view-file (file &optional wild) activate)
(if (and (not (file-writable-p file))
(not (file-directory-p file)))
(view-file file)
ad-do-it))
;; 書き込み不能な場合は view-mode を抜けないように
(defvar view-mode-force-exit nil)
(defmacro do-not-exit-view-mode-unless-writable-advice (f)
`(defadvice ,f (around do-not-exit-view-mode-unless-writable activate)
(if (and (buffer-file-name)
(not view-mode-force-exit)
(not (file-writable-p (buffer-file-name))))
(message "File is unwritable, so stay in view-mode.")
ad-do-it)))
(do-not-exit-view-mode-unless-writable-advice view-mode-exit)
(do-not-exit-view-mode-unless-writable-advice view-mode-disable)
</pre>
<br />
4 行目からの設定見たら大体キーバインドが分かるでしょう。
point-undo とか jounte とかは好みで入れましょう。<br />
さらに key-chord をインストールして以下を書いておけば jk キー同時押しで view-mode の有効化と無効化を切り替えできます。<br />
<pre class="brush: lisp;">(require 'key-chord)
(setq key-chord-two-keys-delay 0.04)
(key-chord-mode 1)
(key-chord-define-global "jk" 'view-mode)
</pre>
使え。<br />
<h1>
参考サイト</h1>
<a href="http://d.hatena.ne.jp/rubikitch/20081104/1225745862">Ctrl+中指か薬指を使うキー操作が多い Emacs で指の負担を軽くする方法</a>yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com0メキシコ23.634501 -102.55278399999997-5.1045930000000013 -143.86137799999997 52.373595 -61.244189999999975tag:blogger.com,1999:blog-6377479828613065117.post-91059096081734185882015-04-02T23:29:00.002+09:002016-04-07T17:29:55.789+09:00EmacsとSkimの連携 Part.2<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiewjtlwVlEs9sIRLcpximzQJ-13PNmM1ch4Im5idzXbLyRaTnTHrFMG8-Bratpzi9A2cNbtAE0QQEPQiVn5vcb-FHErb9c6HhHbh4nPyQPyUXxNpH6DuGoObw4m4OP6Axsaj6L2-YWmKKX/s1600/77484eb1.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiewjtlwVlEs9sIRLcpximzQJ-13PNmM1ch4Im5idzXbLyRaTnTHrFMG8-Bratpzi9A2cNbtAE0QQEPQiVn5vcb-FHErb9c6HhHbh4nPyQPyUXxNpH6DuGoObw4m4OP6Axsaj6L2-YWmKKX/s1600/77484eb1.gif" height="320" width="240" /></a></div>
<h1>
まえがき</h1>
以前こういった記事がありました。<br />
<a href="http://ochiailab.blogspot.jp/2012/10/emacsskim.html">Ochiailab Tips: Emacs と Skim の連携</a><br />
Skim という PDF ビューアは使ったことなかったのと、導入コストに比べて作業効率の向上は微々たるものなんじゃないかと思ってずっとやっていなかったのですが、先日該当記事を書いてくれた著者のデモを見て、「これこそ風だ」と思ったので導入を決意しました。<br />
ただ、該当記事に Xtexshop というのが出てくるのですが、僕の Mac にはそんなもの入っておらず何それという感じなので少しだけ違う方法を取ることにしました。<br />
<code>latexmk</code> というコマンドを使います。<br />
<h1>
<code><a name='more'></a>latexmk</code> について</h1>
LaTeX のコンパイル方法にはいくつかありますが、恐らく一番メジャーなのが <code>platex</code> して <code>dvipdfmx</code> するというやり方だと思います。<br />
ただ、BibTeX なんかも使うと 5 回くらいコマンド打つことになるのでめんどくさくなりがちです。
LaTeX あるあるです。<br />
過去にはこんな記事もあります。<br />
<ul>
<li><a href="http://ochiailab.blogspot.jp/2012/07/latex.html">Ochiailab Tips: latex コンパイル用ファイル</a></li>
<li><a href="http://ochiailab.blogspot.jp/2013/10/texpdf.html">Ochiailab Tips: tex✈pdf をコマンドで</a></li>
</ul>
もしくはこういう便利スクリプトを用意してくれている人もいます。<br />
<a href="https://github.com/fjyuu/platexpdf">fjyuu/platexpdf</a><br />
実はこんなことしなくても、最近の LaTeX のパッケージには <code>platex</code> や <code>bibtex</code> や <code>dvipdfmx</code> など一連のコンパイル作業を自動で行ってくれるコマンドが用意されています。<br />
それが <code>latexmk</code> です。<br />
<code>latexmk</code> にどういう処理を行わせるかというのは <code>~/.latexmkrc</code> で設定できます。<br />
僕のは参考サイト丸パクリですがこのようになっています。<br />
<pre class="brush: bash;">$latex = 'platex -synctex=1 -halt-on-error';
$latex_silent = 'platex -synctex=1 -halt-on-error -interaction=batchmode';
$bibtex = 'pbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';
$max_repeat = 5;
$pdf_mode = 3; # generates pdf via dvipdfmx
$clean_ext = 'bbl rel %R-blx.bib %R.synctex.gz';
# 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 /Applications/Skim.app";
</pre>
詳しくは以下の参考サイトを。<br />
<a href="http://konn-san.com/prog/why-not-latexmk.html">latexmk で楽々 TeX タイプセットの薦め(& biblatex+biber で先進的な参考文献処理) - konn-san.com</a><br />
重要なのは <code>-synctex=1</code> というオプションで SyncTeX によって Skim と連携できるようになることです。
<code>$pdf_mode</code> を 3 にすることで、<br />
<ol>
<li><code>platex</code></li>
<li><code>bibtex</code></li>
<li><code>platex</code></li>
<li><code>platex</code> <sup><a class="footref" href="https://www.blogger.com/blogger.g?blogID=6377479828613065117#fn.1" id="fnr.1" name="fnr.1">1</a></sup></li>
<li><code>dvipdfmx</code></li>
</ol>
という作業を <code>latexmk <tex ファイル名></code> というコマンドだけでやってくれます。<br />
<h1>
Skim の設定</h1>
<a href="http://skim-app.sourceforge.net/">Skim</a> をダウンロードしたら環境設定の「同期する」の「PDF-TeX 同期サポート」の「初期値」を Emacs にします。。。<br />
が、僕の環境(Yosemite & Homebrew 版 Emacs)だとうまくいかなかったので「初期値」を「カスタム」としてコマンドを "/usr/local/bin/emacsclient" にします。<br />
これは Homebrew 版の Emacs の場合なので他の版の Emacs を使っている場合は適宜修正してください。<br />
あと「ファイルの変更をチェック」もチェックしておけばファイルの変更を監視してくれます。<br />
<h1>
Emacs の設定</h1>
latexmk を Emacs で使えるようにして、カーソルのある行が PDF 上のどこに該当するかを表示する設定です。<br />
<pre class="brush: lisp;">(server-force-delete)
(server-start); start emacs in server mode so that skim can talk to it
(add-hook 'LaTeX-mode-hook (function (lambda ()
;; Use Skim as viewer, enable source <-> PDF sync
;; make latexmk available via C-c C-c
;; Note: SyncTeX is setup via ~/.latexmkrc
(add-to-list 'TeX-command-list
'("latexmk" "latexmk %s" TeX-run-TeX nil t
:help "Run latexmk on file"))
;; Open PDF via Skim.app
(add-to-list 'TeX-command-list
'("Skim" "open -a Skim.app '%s.pdf'" TeX-run-command t nil))
;; Open PDF via Skim.app in the background.
(add-to-list 'TeX-command-list
'("SkimBG" "open -g -a Skim.app '%s.pdf'" TeX-run-command t nil))
)))
(setq japanese-TeX-command-default "latexmk")
(setq TeX-command-default "latexmk")
;; use Skim as default pdf viewer
;; Skim's displayline is used for forward search (from .tex to .pdf)
;; option -b highlights the current line; option -g opens Skim in the background
(setq TeX-view-program-list
'(("Skim" "displayline -b -g %n %o %b"))) ;; displayline must be available.
(setq TeX-view-program-selection '((output-pdf "Skim")))
</pre>
こちらの記事と若干被る設定もあるので適宜修正してください。<br />
<a href="http://ochiailab.blogspot.jp/2013/01/auctex-reftex.html">Ochiailab Tips: AUCTex + RefTex で快適論文作成</a><br />
あと <code>displayline</code> というコマンドがある場所にパスを通す必要がありますが、通さなくても代わりに
<code>/Applications/Skim.app/Contents/SharedSupport/displayline</code> と書き換えると大丈夫です。<br />
<h1>
使い方</h1>
<h2>
Emacs 側</h2>
<ul>
<li>C-c C-c latexmk</li>
</ul>
で <code>latexmk</code> を実行して、<br />
<ul>
<li>C-c C-c Skim</li>
</ul>
で Skim で PDF ファイルを開きます。
一度 Skim.app を開いたままにしておけば<br />
<ul>
<li>C-c C-v</li>
</ul>
でカーソルのある行が PDF 上に表示されます。これはバックグランドで Skim が動くのでいちいち Skim にフォーカスが移ることがなく Emacs で作業を続行できます。
ただし、なぜか <code>latexmk</code> し直してから C-c C-v やると "No matching viewer found." と言われてしまいます。
その時のために<br />
<ul>
<li>C-c C-c SkimBG</li>
</ul>
という Skim をバックグラウンドでコマンドを開くコマンドを付けてあります。<br />
<h2>
Skim 側</h2>
PDF を「Cmd+Shift+クリック」で Emacs 上の該当場所に飛べます。<br />
これで LaTeX でも WYSIWYG ライクな編集が可能になりますよ!
使え。<br />
<h1>
その他参考サイト</h1>
<a href="http://stackoverflow.com/questions/7899845/emacs-synctex-skim-how-to-correctly-set-up-syncronization-none-of-the-exi">latex - Emacs + Synctex + Skim: How to correctly set up syncronization? - Stack Overflow</a><br />
<div id="footnotes">
<h2 class="footnotes">
Footnotes: </h2>
<div id="text-footnotes">
<div class="footdef">
<sup><a class="footnum" href="https://www.blogger.com/blogger.g?blogID=6377479828613065117#fnr.1" id="fn.1" name="fn.1">1</a></sup> 検証が不十分なので 4 がちゃんと行われているかは定かではないけど、イニシャルコンパイルでちゃんと参照できている pdf が生成されていたので行われているはず。</div>
</div>
</div>
yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com3中華人民共和国 内モンゴル40.81739 111.7662900000000318.011837000000003 70.457696000000027 63.622943000000006 153.07488400000003tag:blogger.com,1999:blog-6377479828613065117.post-81253763868149394402015-04-01T22:42:00.001+09:002015-04-01T22:43:47.176+09:00カスタマイズ可能なデスクトップウィジェットアプリ「Übersicht」<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinq9kHeqMitnZvFrTiYB0_wJu7reEYqlYGj1R0sYkWpuZXL_Jyef07fxabItvUwmma7YSFNqN7Cqm5TeDq-GR37kxtBCjneuy9VZyG_nt141Zbmks_5-fddi9NxEnAxHkltJmGQmzZuXHJ/s1600/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88+2015-04-01+22.22.08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinq9kHeqMitnZvFrTiYB0_wJu7reEYqlYGj1R0sYkWpuZXL_Jyef07fxabItvUwmma7YSFNqN7Cqm5TeDq-GR37kxtBCjneuy9VZyG_nt141Zbmks_5-fddi9NxEnAxHkltJmGQmzZuXHJ/s1600/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88+2015-04-01+22.22.08.png" height="180" width="320" /></a></div>
<br />
アプリの紹介です。<br />
Übersichtというアプリを使うと、Macのデスクトップに色々なものを表示できます。<br />
<a href="http://tracesof.net/uebersicht/" target="_blank">Übersicht</a><br />
<br />
トップ画像では時計と天気、CPUとメモリの使用状況、Tumblrの画像を表示させています。<br />
<br />
ウィジェットのカスタマイズはCoffeeScriptかJavaScriptでできますが、既に色々なウィジェットが開発されているので導入は簡単です。<br />
<a href="http://tracesof.net/uebersicht-widgets/" target="_blank">Übersicht Widgets</a><br />
<br />
Tumblrの画像表示が一番便利だと思いました。yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com0南極-82.862751899999992 -135-90 59.765625 -31.756140899999991 30.234375tag:blogger.com,1999:blog-6377479828613065117.post-91734558287257019402015-03-31T22:36:00.000+09:002015-03-31T22:36:31.731+09:00Emacsとシェルのパスを共有.zshrcなんかで設定しているパスの変数をEmacs側でインポートしてEmacsからでも通るようにするlispがあります。<br />
これです。 <br />
<a href="https://github.com/purcell/exec-path-from-shell" target="_blank">purcell/exec-path-from-shell</a><br />
<br />
MELPAに登録されているので簡単にダウンロードできます。<br />
以下のように設定しておくと好みの変数を持ってきてこれます。<br />
<pre class="brush: lisp;">;; load environment variables -------------------------------
(let ((envs '("PATH" "C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" "TEXINPUTS" "BSTINPUTS" "BIBINPUTS")))
(exec-path-from-shell-copy-envs envs))
</pre>
これで.zshrcの方だけで管理しておくことができます。<br />
以下の記事の後半の設定とかいらなくなります。<br />
<a href="http://ochiailab.blogspot.jp/2013/01/latexsty-bst-bib.html" target="_blank">Ochiailab Tips: LaTeXのsty, bst, bibファイルなどを単一フォルダで管理する方法</a><br />
<br />
便利なので使え。<br />
<br />
参考サイト: <a href="http://d.hatena.ne.jp/syohex/20130718/1374154709" target="_blank">Emacsでの環境変数の設定に exec-path-from-shellを使うようにした - Life is very short</a>yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com0北朝鮮40.339852 127.5100929999999834.1467645 117.18294449999999 46.5329395 137.83724149999998tag:blogger.com,1999:blog-6377479828613065117.post-46173521002178823232015-03-25T16:08:00.001+09:002015-04-03T13:30:42.605+09:00Homebrew で Mac の環境を移行したり同期する<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVTBusg0IlzWyhQK5-J1QlX_UAddhZpY1y6ebRtK4SW2ISlg3UW9I9zfg4Gdvf7wzHz6FkuZHn38FiRFAtc-a3Krn9o-tl7izLgucd0SB2LbICd3qzpCuFjSHuYr81KZThtXD9YAw8VGab/s1600/1103-choose-brew.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVTBusg0IlzWyhQK5-J1QlX_UAddhZpY1y6ebRtK4SW2ISlg3UW9I9zfg4Gdvf7wzHz6FkuZHn38FiRFAtc-a3Krn9o-tl7izLgucd0SB2LbICd3qzpCuFjSHuYr81KZThtXD9YAw8VGab/s1600/1103-choose-brew.jpg" height="320" width="320" /></a></div>
<br />
新しい Mac にアプリやライブラリ等を Homebrew によって自動で移行させて、かつ双方
の Mac で環境を同期させるやり方の覚え書き。<br />
<a name='more'></a><br />
<h1>
古い Mac での設定</h1>
Homebrew と <code>git</code> (Developer tool が入っているなら大丈夫) が既に入っている前提。<br />
<h2>
Homebrew のアップデート</h2>
<pre class="brush: bash;">brew update
brew upgrade
</pre>
<h2>
Homebrew-Cask のインストール</h2>
<code>/Applications/</code> フォルダ内のアプリを Homebrew で入れられるようにするツール。<br />
<pre class="brush: bash;">brew install caskroom/cask/brew-cask
</pre>
<h2>
Homebrew-file の設定</h2>
Homebrew-Cask で入れたアプリも含め、Homebrew 経由で入れたアプリ、パッケージ等を一元管理するためのツール。<br />
<h3>
git の設定</h3>
自分は使い回している <code>.gitconfig</code> ファイルがあるのでそれを使っている。
無ければ以下のように設定する。<br />
<pre class="brush: bash;">git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
ssh-keygen -t rsa -C "your_email@example.com"
</pre>
して <code>~/.ssh/id_rsa.pub</code> の内容を GitHub に登録。<br />
この辺の話は以前の記事にも書いてある。<br />
<a href="http://ochiailab.blogspot.jp/2013/11/gitgithubbitbucket.html">Ochiailab Tips: Git と GitHub か Bitbucket を利用してソースのバックアップを取る</a><br />
<h3>
GitHub 上に Brewfile レポジトリを作る</h3>
最初は空っぽでいい。
Brewfile に Homebrew 経由でインストールしたアプリやパッケージを一覧にしておくことになる。<br />
<h3>
brew-file のインストール</h3>
<pre class="brush: bash;">brew tap rcmdnk/file
brew install brew-file
</pre>
<h3>
GitHub 上の Brewfile と Homebrew に紐付け</h3>
<pre class="brush: bash;">brew file set_repo -r [GitHub のアカウント名]/Brewfile
</pre>
<h3>
初期化</h3>
<pre class="brush: bash;">brew file init
</pre>
うまくいったら<br />
<pre class="brush: bash;">brew file edit
</pre>
でエディタが立ち上がって、Brewfile が編集できるはず。
何もいじらずに閉じる。<br />
この辺で若干つまずいたけど、支持通りにやればなんとかなった気がする。<br />
<h2>
Brewfile の編集</h2>
<code>/Applications/</code> フォルダ内の既存アプリのうち Homebrew-Cask で入れられるも
のを Cask で入れ直して Brewfile に登録する作業。<br />
<h3>
Cask でインストールできるアプリをチェック</h3>
<i>以下のコマンドはカレントディレクトリに Caskfile というのを生成するので注意。</i><br />
<pre class="brush: bash;">brew file casklist
</pre>
そしたら、英語で<br />
<ol>
<li>Cask でインストールされたアプリ</li>
<li><code>brew install</code> で入れたアプリ</li>
<li><code>/Applications/</code> フォルダに手動で入れたけど、Cask で入れられるアプリ</li>
<li>Appstore から入れたアプリ</li>
<li>Cask では手に入らないアプリ</li>
</ol>
の数が表示される。
これらのアプリ一覧は生成された Caskfile に記入されている。
このうち 3 のアプリをこれからインストールする。<br />
<h3>
Cask でアプリをインストール</h3>
例えば iTerm2 をインストールする場合は以下。<br />
<pre class="brush: bash;">brew cask install iterm2
</pre>
アプリは何個でも書いて大丈夫。<br />
Cask 上でアプリがどういう名前で登録されているか確認する場合は<br />
<pre class="brush: bash;">brew cask search amazon
</pre>
などと検索すれば出てくる。<br />
ちなみに、Cask 経由で入れたアプリはデフォルトでは
<code>/opt/homebrew-cask/Caskroom/</code> にインストールされて、 <code>/Applications/</code>
フォルダにはシンボリックリンクが貼られる仕様になっている。
この挙動を変える方法もあるけど、ここでは触れない。<br />
あと、一度既存アプリを削除したほうがいいらしいけど、面倒くさかったのでやらなかっ
た。
特に問題は発生していない。<br />
<h3>
Brewfile のアップデート</h3>
Brewfile を更新して GitHub に同期。<br />
<pre class="brush: bash;">brew file update
</pre>
<h1>
新 Mac での設定</h1>
以下、前節の設定と被る部分もあり。<br />
<h2>
Developer tool のインストール</h2>
<pre class="brush: bash;">xcode-select --install
sudo xcodebuild -license
</pre>
スペースキーで最後まで読んで agree する。<br />
<h2>
git の設定</h2>
自分は使い回している <code>.gitconfig</code> があるのでそれを使っている。
無ければ設定する。<br />
<pre class="brush: bash;">git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
ssh-keygen -t rsa -C "your_email@example.com"
</pre>
して <code>~/.ssh/id_rsa.pub</code> の内容を GitHub に登録。<br />
<h2>
Homebrew のインストール</h2>
<pre class="brush: bash;">ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor
</pre>
<h2>
Homebrew-Cask のインストール</h2>
<pre class="brush: bash;">brew install caskroom/cask/brew-cask
</pre>
<h2>
Homebrew-file のインストール</h2>
<h3>
brew-file のインストール</h3>
<pre class="brush: bash;">brew tap rcmdnk/file
brew install brew-file
</pre>
<h3>
GitHub 上の Brewfile を紐付け</h3>
<pre class="brush: bash;">brew file set_repo -r [GitHub のアカウント名]/Brewfile
</pre>
<h2>
アプリのインストール</h2>
以下を行えば、Brewfile に書いてあるアプリ、パッケージをダウンロードしてくれる。<br />
<pre class="brush: bash;">brew file install
</pre>
ちょくちょくパスワードが必要になったりする。<br />
<h1>
複数 Mac で同期</h1>
<h2>
新しくパッケージをインストールするとき</h2>
新しく Homebrew 経由で入れるパッケージは、 <code>brew install <package></code> ではなく、<br />
<pre class="brush: bash;">brew file brew install <package>
</pre>
とする。
これにより、自動的に Brewfile が更新される。<br />
この更新を GitHub に反映させるには<br />
<pre class="brush: bash;">brew file push
</pre>
でいける。<br />
もし普通に <code>brew install</code> で入れてしまっても<br />
<pre class="brush: bash;">brew file update
</pre>
でなんとかなる。<br />
<h2>
他の Mac での更新を反映させたいとき</h2>
<pre class="brush: bash;">brew file pull
</pre>
で GitHub の Brewfile をダウンロードして、<br />
<pre class="brush: bash;">brew file install
</pre>
で不足分をインストール。<br />
もしくは<br />
<pre class="brush: bash;">brew file update
</pre>
でもなんとかなる。
ただ、時間はかかる。<br />
<h2>
<code>brew file update</code> について</h2>
以下の一連のコマンドを実行する<br />
<ol>
<li><code>brew file pull</code></li>
<li><code>brew file install</code></li>
<li><code>brew update & brew upgrade</code></li>
<li><code>brew file init</code></li>
<li><code>brew file push</code></li>
<li><code>brew file clean -C</code></li>
</ol>
<h2>
Cask で入れたアプリのアップデート</h2>
Cask で入れたアプリは <code>brew update</code> やっても
アップデートされないので以下を実行する。<br />
<pre class="brush: bash;">brew cask update
</pre>
ただし、これだと古いバージョンも残ってしまうので、最新版だけ残す場合は以下。<br />
<pre class="brush: bash;">brew file cask_upgrade -C
</pre>
<h1>
参考サイト</h1>
<ul>
<li><a href="http://joker.hatenablog.com/entry/2014/11/09/014607">Yosemite で、Homebrew 環境構築手順(brew, brew cask, brew file) - joker8phoenix's diary</a></li>
<li><a href="http://joker.hatenablog.com/entry/2015/01/28/123159">brew-file の各コマンド - joker8phoenix's diary</a></li>
<li><a href="http://www.task-notes.com/entry/20150316/1426474800">Homebrew-file で homebrew でインストールしたパッケージの管理をする - TASK NOTES</a></li>
</ul>
yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com2モロッコ31.791702 -7.092620000000010818.0550195 -27.74691700000001 45.5283845 13.561676999999989tag:blogger.com,1999:blog-6377479828613065117.post-35876831717159511542015-02-25T12:49:00.001+09:002015-02-25T22:06:29.898+09:00【YASnippet強化】 auto-complete-clangのご紹介<center>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.americancoalcouncil.org/resource/resmgr/Images/ACC_logo_2012_hi_res.png" imageanchor="1"><img border="0" src="http://www.americancoalcouncil.org/resource/resmgr/Images/ACC_logo_2012_hi_res.png" width="80%" /></a></div>
</center>
<br />
<br />
<div style="padding: 0px 10px 0px 10px;">
Emacsで関数とかforとかの補完をする定番といえば<a href="http://ochiailab.blogspot.jp/2012/12/yasnippet.html">YASnippet</a>ですが,自作関数のスニペットは自分で作らないといけないのがすこし面倒です.</div>
<div style="padding: 5px 10px 20px 10px;">
そこで今日は自作含めてあらゆる関数をyasnippetで入力できるようになる神プラグイン,<b>auto-complete-clang</b> を紹介します.</div>
<a name='more'></a><hr style="border-top: 2px dotted #ff9d9d; width: 100%;" />
<h3 style="padding: 10px 0px 0px 0px;">
1.インストール</h3>
<div style="padding: 5px 10px 20px 10px;">
インストールは package.el を使えば簡単で,<br />
<div style="margin: 5px 0px 5px 20px;">
<span style="font-family: Courier New, Courier, monospace;">M-x list-packages</span></div>
して,auto-complete-clang を探し, I でマークして X 押せば勝手にインストールされますあともし yasnippet と auto-complete も入れてなかったら同じように入れてください.
</div>
<h3>
2.コンパイル済みヘッダの用意</h3>
<div style="padding: 5px 10px 0px 10px;">
次にコンパイル済みのヘッダファイルを作るのですが,その前に,ご自身がヘッダ置き場にしてるところに自分が使ってるヘッダへのインクルード文を全部書いたヘッダファイルを作って下さい.
</div>
<div style="padding: 5px 10px 0px 10px;">
たとえば筆者の場合は <span style="font-family: Courier New, Courier, monospace;">~/Documents/_Include/ </span>をヘッダ置き場にしていて,そこに <span style="font-family: Courier New, Courier, monospace;">heddaa.h</span> と名付けた以下のファイルを作りました.
<br />
<div style="margin: 0px 0px 30px 20px;">
<pre class="brush: c;">// heddaa.h
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<float.h>
#include<math.h>
#include<complex.h>
#include<string.h>
#include<limits.h>
#include<fftw3.h>
#include"dSFMT.h"
#include"define.h"
#include"code.h"
#include"universal.h"
#include"trellis.h"
#include"ofdm.h"
</pre>
</div>
次にこれを以下のコマンドでコンパイルします.
<br />
<div style="margin: 0px 0px 0px 20px;">
<pre class="brush: shell;">clang -cc1 -emit-pch -x c-header ./heddaa.h -o heddaa.pch
</pre>
</div>
Warningが出るかもしれませんがErrorが出てなければ多分大丈夫だと思います.Error出たら消えるまでよしなに対処して下さい.</div>
<div style="margin: 10px 0px 10px 10px;">
あと c++ の場合は "<span style="font-family: Courier New, Courier, monospace;">clang++</span>" "<span style="font-family: Courier New, Courier, monospace;">c++-header</span>" "<span style="font-family: Courier New, Courier, monospace;">.hpp</span>" など変更すれば同様にできます.
</div>
<div style="padding: 10px 0px 20px 10px;">
これで <span style="font-family: Courier New, Courier, monospace;">~/Documents/_Include/</span> に <span style="font-family: Courier New, Courier, monospace;">headdaa.pch</span> というファイルができました.
</div>
<h3>
3.Emacsの設定</h3>
<div style="padding: 5px 10px 0px 10px;">
以上が終わったら Emacs の設定ファイルに設定を書きます,
<br />
<pre class="brush: plain;">
;;; auto-complete ;;;
(require 'auto-complete)
(require 'auto-complete-config)
(require 'auto-complete-clang)
(defun my-ac-cc-mode-setup ()
(setq ac-clang-prefix-header
"~/Documents/_Include/heddaa.pch")
(setq ac-clang-flags '("-w" "-ferror-limit" "1"))
(setq ac-sources (append '(ac-source-clang
ac-source-yasnippet)
ac-sources)))
(defun my-ac-config ()
(define-key ac-complete-mode-map "\C-n" 'ac-next)
(define-key ac-complete-mode-map "\C-p" 'ac-previous)
(add-hook 'c-mode-common-hook 'my-ac-cc-mode-setup)
(add-hook 'auto-complete-mode-hook 'ac-common-setup)
(global-auto-complete-mode t))
(my-ac-config)
;;; yasnippet ;;;
(require 'yasnippet)
(yas-global-mode 1)
</pre>
</div>
<div style="padding: 0px 10px 0px 10px;">
<span style="font-family: Courier New, Courier, monospace;">~/Documents/_Include/heddaa.pch</span> のところがさっき作ったファイルへのパスです.<span style="font-family: Courier New, Courier, monospace;">ac-source-clang</span> と <span style="font-family: Courier New, Courier, monospace;">ac-source-yasnippet</span> のところは c-mode で auto-comp される辞書リストで,他にも追加したい場合はここにかけばできます.</div>
<div style="padding: 10px 10px 0px 10px;">
以上で設定終わりであとはEmacs再起動して適当にCのファイルを開き自分の関数を入力すれば yasnippet で引数を入力できるようになります.
</div>
<div style="padding: 20px 10px 20px 10px;">
ちなみに,上の設定だとよくある関数(printfとか)はyasnippetにもともと入ってるスニペットとダブって同じ候補が2つ出てうざいのでとくにこだわりなければ関数のスニペットを全部削除するといいかもしれません.
</div>
<hr style="border-top: 2px dotted #ff9d9d; width: 100%;" />
<center>
<div style="padding: 20px 0px 30px 0px;">
<h3>
参考ページ</h3>
<div style="margin: 10px 0px 5px 0px;">
<a href="http://d.hatena.ne.jp/kenbell1988/20120428/1335609313">auto-complete-clang - 理科系の備忘録</a></div>
<div style="margin: 5px 0px 0px 0px;">
<a href="http://chipmunk-web.com/2012/03/%E3%81%BE%E3%81%A0%E3%81%8A%E5%89%8D%E3%81%AFemacs%E3%81%AE%E7%92%B0%E5%A2%83%E3%82%92%E6%95%B4%E3%81%88%E3%81%A6%E3%81%AA%E3%81%84%E3%81%AE%E3%81%8B%EF%BC%88%EF%BC%91%EF%BC%89/" style="padding: 10 0 0 0;">まだお前はEMACSの環境を整えてないのか(1) - Chipmunk Web</a></div>
</div>
</center>yoshizawahttp://www.blogger.com/profile/11155072607027679040noreply@blogger.com2カスピ海41.934977 50.66894500000000829.832377 30.014648000000008 54.037577000000006 71.323242000000008tag:blogger.com,1999:blog-6377479828613065117.post-90276663767722686042015-02-22T23:40:00.001+09:002015-02-22T23:40:07.444+09:00【Mac】キーボードのチャタリングはソフトウェアで直せる【Karabiner】筆者にはお気に入りのキーボードがあります。<br />
これです。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOc5LDIfK0dLNA-_ldFTaovY1mLoXuSl9FZl_njpb1eWGIB1nHJ1dE-SK5XAJ9XBJQkXg2gB6YULcdI62UdjttJdw591Wlc8-oEs-lKo-QDwEplDlYD7dxcAvS8_ejaJ9LnIEbBsG-QGxx/s1600/WP_000382.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOc5LDIfK0dLNA-_ldFTaovY1mLoXuSl9FZl_njpb1eWGIB1nHJ1dE-SK5XAJ9XBJQkXg2gB6YULcdI62UdjttJdw591Wlc8-oEs-lKo-QDwEplDlYD7dxcAvS8_ejaJ9LnIEbBsG-QGxx/s1600/WP_000382.jpg" height="239" width="320" /></a></div>
<br />
<a href="https://www.trulyergonomic.com/store/index.php" title="Truly-Ergonomic - Truly Ergonomic Mechanical Keyboard">Truly-Ergonomic - Truly Ergonomic Mechanical Keyboard</a><br />
です。<br />
TECK 209というモデルです。<br />
メカニカルキーボードは一般的にチャタリングを起こしやすいという性質があり、特にこのキーボードは酷いという評判があって筆者もそれに悩まされていました。<br />
購入してから3ヶ月経たないくらいでキーを一回押しただけでいくつも同じキーがリピートして押されるという現象が発生しました。<br />
保証期間内だったので無料で修理してもらいましたが、それから約1年後にもう一度同じ現象に見舞われました。<br />
保証期間も終わっていたし、今後1年おきに同じ現象が発生するのかと思うと修理をするのをためらってしまいます。<br />
<br />
実はこのTECKのモデルのファームウェアにはバグあるらしく、チャタリング抑制機能が働かないようになっているらしいのです。<br />
以下のサイトにバグを直した版のファームウェアがあります。<br />
<a href="https://github.com/yurivkhan/teck" title="yurivkhan/teck">yurivkhan/teck</a><br />
しかし筆者の場合、これを入れるとキーボードが一切反応しなくなるという余計質の悪い現象に見舞われたので、元のファームウェアに戻しました。<br />
<br />
チャタリングのストレスを感じつつ、サブキーボードとして使用していましたが、Mac用のキーリマップソフトウェア、Karabinerが割りと最近のアップデートでチャタリング抑制機能を追加したのを知りました。<br />
<a href="https://pqrs.org/osx/karabiner/index.html.ja" title="Karabiner - OS X用のソフトウェア">Karabiner - OS X用のソフトウェア</a><br />
それで試しに使ってみたら、なんとみごとに直りました。<br />
設定方法は、<br />
<ul>
<li>[Change Key] -> ["Ignore bouncing (chattering) events"をオン]</li>
</ul>
<ul>
<li>[Key Repeat] -> ["Ignore bouncing/chattering events"の閾値を変更]</li>
</ul>
だけです。<br />
デフォルトの閾値でも改善されますが、筆者はタイピングに支障が出ないくらいのもう少し大きい値に設定してます。<br />
<br />
Karabinerの作者様に幸あれ。<br />
<br />
関連記事です。<br />
<a href="http://ochiailab.blogspot.jp/2015/02/blog-post.html" title="Ochiailab Tips: アルファベット全部コントロールキーにする">Ochiailab Tips: アルファベット全部コントロールキーにする</a>
yoshitohttp://www.blogger.com/profile/15876832911491347229noreply@blogger.com0オマーン21.512583 55.9232549999999266.5340875 35.268957999999927 36.4910785 76.577551999999926