2016年11月30日水曜日

Polyvinyl plays Polyvinylが面白い

Polyvinyl recordsが創業20周年を記念して,Polyvinyl records所属のアーティストがPolyvinyl records所属アーティストの楽曲をカバーするアルバム「Polyvinyl plays Polyvinyl」が発売されています.購入はアナログ盤かmp3しかないみたいです.mp3を購入しましたが,CDが欲しいな.

soundcloudのページで全曲試聴が可能です.
特にGenerationals (feat. Sarah Quintana)がカバーしているIn Volcano, I'm Still Excited!!の楽曲"In Green"が原曲の原型を留めていないにも関わらず,全く新しい名曲に仕上がっており,衝撃的です.以下に貼り付けておきます.



原曲はこちらです.

同じ曲と認識できる人いるのでしょうか.

他にもAlohaがカバーしているBeach Slangの"Too Late To Die Young"も良いです.


原曲はこちら


さらに20周年企画として,こちらのサイトからPolyvinyl records 20th Anniversary Samplerが無料でダウンロードできるようになっていました.44曲入りです.

2016年11月29日火曜日

Skim.appの自動更新の設定

Macの軽量pdfビューアであるSkimは,MacでLaTeXを使っている人には必須のアプリだと思います.pdfファイルを更新した際に自動で再読込をする機能がついているのですが,デフォルトの設定だと,ファイルを開く毎に,自動更新を許可するかどうかを求める表示がでてくるので面倒です.

この自動更新の確認の表示を出さないようにする方法を調べてみました.
TeX StackExchangeのAuto-refresh and mac osに従って,ターミナルから
defaults write -app Skim SKAutoReloadFileUpdate -boolean true
と打っておけば,自動更新の確認がなくなりました.

2016年11月23日水曜日

Macos sierraで「ろ」のキーにbackslashとunderscoreを割り当てる

もともとLinuxやWindows機を使っていたこともあり,キーボードの「ろ」のキーを打鍵したときには,通常はbackslash "\"を,shiftキーと同時に押したときにはunderscore "_"が表示されて欲しい人間です.

しかしMacのキーボードでは,「ろ」のキーにはunderscoreが割り当てられており,shiftキーを押しても挙動が変わりません.El CapitanまではKarabinerを利用してunderscoreをbackslashに割り当てていました.しかしKarabinerはまだSierraに対応できていないので,このキーのリマップを実現できる手段を探していました.

⌘英かなというアプリを使えば,これが実現できます.

設定は次のようにしました.

ここでは"shift+_"をunderscore "_"に,underscore "_"をYen "¥"に割り当てています.このままではSierraの初期設定のままだと「ろ」のキーを押すと円記号が入力されますが,次のように「システム環境設定」→「入力ソース」の項目で,"¥"キーで入力する文字のところでbackslashを選択しておくと,「ろ」のキーでbackslashが入力されるようになり,"option+Yen"キーで"¥"が入力されるようになります.

これで快適に日本語入力できるようになりました.

2016年11月11日金曜日

webホスティングサービスをFirebaseに移行

ブログに載せているLaTeXなどのコードの色付けにhighlight.jsを使っています。
CDNにホストされている標準的な言語の中にTeXが含まれていないので、GoogleDriveのホスティングサービスを利用して自前で用意していました。

Google Driveのホスティングサービスが終わったので、webホスティングサービスをFirebaseに移行しました。

移行してからしばらく経つので詳細を忘れてしまったのですが、以下のサイトを参考にしました。
ぼちぼち思い出しながら追記していきたいと思います。


2016年10月31日月曜日

amsthm.styのproof環境を日本語で使うときの調整

amsthm.styのproof環境を日本語で使おうとすると、proof. のように定理環境の初めの部分にドットが打たれてしまいます。\proofnameを日本語で書き換えてもこのドットが消えないのと、イタリック体が残ってしまうので、amsthm.styのproof環境を定義してある部分をコピーして次のように改変しました。

\makeatletter
\renewenvironment{proof}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \topsep6\p@\@plus6\p@\relax
  \trivlist
  \item[\hskip\labelsep
%        \itshape
         \bfseries
%    #1\@addpunct{.}]\ignorespaces
    {#1}]\ignorespaces
}{%
  \popQED\endtrivlist\@endpefalse
}
\makeatother

\renewcommand{\proofname}{{[証明]}}
上記ではドットを消すことと、書体をbfseriesにすること、そしてオプションの引数部分を{#1}のように括弧でくくることで、proof環境のオプション部分に{[定理hogeの証明]}のようにオプション引数の括弧である[ ]を使っても、括弧{ }で囲んでおけば正しく出力されるようになりました。

2016年9月20日火曜日

yatexで数式イメージ補完を使って数式書体を変更したい

普段はLaTeX文書を作成するのにemacs+YaTeXを使用しています。
YaTeXでは数式環境中でセミコロン; を押下すると数式イメージ補完入力可能になり、その後aを押せば\alphaが、6を押せば\partialが補完されます。

セミコロンの後にmrを押せば、\mathrm{}が補完され、括弧の間にカーソルが移ります。同様にmsで\mathsf{}, miで\mathit{}なども補完されるのですが、自分が普段良く使う\mathbbや\mathscrはデフォルトで定義されていないようです。

これら数式の書体変更の命令はセクション型(\section{})のコマンドなので、ユーザー定義のセクション型補完の変数として用意されているuser-section-tableに登録すると、セクション型補完のコマンド[prefix]-sで入力した際には括弧まで補完してくれます。

\mathbbや\mathscrも数式イメージ補完を行いたいと思ったので、ユーザ定義の数式記号の変数YaTeX-math-sign-alist-privateにも登録してみたのですが、数式イメージ補完入力からこれらのコマンドを入力すると、括弧が補完されません。

yatex.elで定義されている変数section-tableにこれらのコマンドを登録しておけば、数式イメージ補完入力でも括弧が入力されることを確認したのですが、これらの挙動の違いがイマイチ把握出来ていません。yatex.elを直接変更するとなるとYaTeXのアップデート毎にyatex.elを修正する必要があるので、根本的な解決方法が知りたいのですが、どうすればよいのでしょう?


追記:2016/12/18
yatexの更新の度にyatex.elを書き換えるのは面倒なので,とりあえずinit.elに次のように記述しました.
(setq yatex-mode-load-hook
      '(lambda()
  (setq section-table
        (append section-table '(("mathscr") ("mathbb") ("mathfrak"))))
  ))
user-section-tableに追加せずに,直接section-tableにmasthscrなどを追加しています.user-section-tableへの追加で済む方法はないのかな?

2016年8月19日金曜日

tikz+gnuplotでグラフを描画

tikz内でgnuplotを呼び出してグラフを描画することを試してみました.
今回勉強になったのは,どちらかと言えばループを使ってグラフの目盛りを書くときの記述方法です.

今回作成したのは,次の$\tan x$のグラフです.
ソースコードは次の通りです.mathライブラリが必要です.

\begin{tikzpicture}[xscale=0.5,yscale=0.35]
\begin{scope}
 \clip (-2.5*pi-0.5,-12) rectangle (2.5*pi+0.5,12);
 \foreach \n/\ntext in 
 {-4/-2,-2/-,2/,4/2,-5/-\frac{5}{2},-3/-\frac{3}{2},-1/-\frac{1}{2},1/\frac{1}{2},3/\frac{3}{2},5/\frac{5}{2}}{
 \tikzmath{
 real \x1,\x2;
 \x1=0.5*\n*pi;
 \x2=(0.5*\n+1)*pi;
 };
 \draw[gray!40] (\x1,12)--(\x1,-12);
 \pgfmathparse{mod(\n,2)==0?1:0}
 \ifnum\pgfmathresult > 0
   \node[fill=white,above left] at (\x1,0){$\ntext\pi$};
 \else
  \node[fill=white,below] at (\x1,0){$\ntext\pi$};
 \ifnum\n < 5
  \draw[thick] plot[id=tangent\n,prefix=figures/tikz/plots/,raw gnuplot] 
  function{set samples 50;plot [\x1+0.08:\x2-0.08] tan(x)} ;
 \fi
 \fi
 }
 \draw[gray!40] (2.5*pi,12)--(2.5*pi,-12);
 \node[below right] at (0,0){$0$};
 
\foreach \n in {-10, -5, 5, 10}{
 \draw (-0.1,\n)--(0.1,\n);
 \node[left] at (0,\n){$\n$};
}
\end{scope}
 \draw[->] (-2.5*pi-0.2,0)--(2.5*pi+0.5,0) node[right] {$x$};
 \draw[->] (0,-12)--(0,12) node[left] {$y$};
\end{tikzpicture}

2016年7月21日木曜日

Aloha Little Windows Cuts Light Through

Home Acres (2010)以来6年ぶりとなるAlohaの新作Little Windows Cuts Light Throughがリリースされています。傑作です。Alohaといえばヴィブラフォンが特徴的な印象がありましたが、今作ではあまり聴かれないようです。

フル・アルバムがYouTubeで試聴可能です。


前半の曲は全て気に入っているのですが、特に3曲めのOcean Streetと5曲めのFright Riskが良いです。





しかし再生回数が少ないです。Alohaの楽曲は個人的に何年たっても不思議と聞き飽きることがなく、延々と聴いていられるスルメ作ばかりでおすすめです。難点は露出が非常に少なく、ミュージック・ビデオも変なやつが2曲のみ、また検索しても(バンド名のせいで検索がかけにくくて困る)ライブの映像などが見当たらないのが残念です。今回のアルバム発表に伴ったツアーも公演数が少ないみたいだし。発売から2ヶ月ほど経ちましたが、未だにこればかり聴いています。

2016年6月6日月曜日

tcolorboxを使った定理環境

定理環境をmdframedからtcolorboxへ乗り換えでは,ソースを変更せずに済むように、タイトルが省略可能である定理環境をtcolorboxを使って作りました。しかしあちらの記述では臨時的にtcolorboxのオプションを追加したい場合などに対応できないので、今回はtcolorboxのxparseライブラリを使って,臨時のオプションも省略可能な引数として記述できるように定理環境を書き改めました。

今回の拡張で、例えばtcolorboxのsidebysideオプションを使い、次のように文章の横に図を配置することなどが可能になりました。タイトルは[]で囲み、追加のオプションは、ダブルクォート""で囲むように設定しています。
ソースは以下のとおりです。

\documentclass[dvipdfmx]{jsarticle}

\usepackage{lipsum}%ダミーの文章を入れる
\usepackage{capt-of}

\usepackage{tcolorbox}
\usepackage{varwidth} 
\usepackage{amsmath}
\tcbuselibrary{breakable}
\tcbuselibrary{skins}
\tcbuselibrary{xparse}%内部でxparse.styを読み込むのでNewDocumentCommandなどが使える
\definecolor{frameinnercolor}{RGB}{49,44,44}


\newcounter{theorem}
\numberwithin{theorem}{section}% numberwithinはamsmathで定義
\NewTColorBox{theobox}{o m +o}{%oは省略可能な引数、mは必須の引数、+は複数行に亘っても良いことを表す。
%#1=タイトル(省略可), #2=定理環境名, #3=tcolorboxの追加オプション
enhanced,frame empty,interior empty,
coltitle=white,fonttitle=\bfseries,colbacktitle=frameinnercolor,
extras broken={frame empty,interior empty},
borderline={0.5mm}{0mm}{frameinnercolor},
sharp corners=downhill,
breakable=true,
top=4mm,
before skip=3.5mm,
attach boxed title to top left={yshift=-3mm,xshift=5mm},
boxed title style={boxrule=0pt,sharp corners=all},varwidth boxed title,
IfNoValueTF={#1}{title=#2~\thetheorem.}{title=#2~\thetheorem:~#1},
IfNoValueTF={#3}{}{#3}%3つめの引数を省略すると-NoValue-を返すのでその対策
}

\NewDocumentEnvironment{theorem}{o m +o}{%NewDocumentEnvironmentはxparse.styで定義
\refstepcounter{theorem}\begin{theobox}[#1]{#2}[#3]}{\end{theobox}}

\NewDocumentEnvironment{theo}{o +d""}{%dは""で区切られた部分を省略可能な引数として扱うことを表す。
\begin{theorem}[#1]{定理}[#2]
}{\end{theorem}}

\NewDocumentEnvironment{law}{o +d""}{%
\begin{theorem}[#1]{法則}[#2]
}{\end{theorem}}


\begin{document}

\section{セクション名}

\begin{theo}[Title]
 \lipsum[1]
\end{theo}

\begin{law}[クーロンの法則]"sidebyside,%横に並べる
sidebyside align=top seam,
sidebyside gap=5mm,
righthand width=4.4cm,
lower separated=false,%lower partとの区切りを入れない
halign lower=flush right,
"%
シャルル・ド・クーロンは1785年,
帯電した小さな球の間に働く力をねじり秤で測定して,
荷電粒子間に働く力がそれぞれの電荷の積に比例し,
距離の2乗に反比例する(逆2乗則に従う)ことを発表した(下式).
\begin{equation*}
 F=k\frac{q_1 q_2}{r^2} \quad 
\left(
\begin{array}{ll}
  q_1, q_2\text{は荷電粒子の電荷量}\\[3pt]
 r\text{は粒子間の距離}
\end{array}
\right)
\end{equation*}

この法則は現在,
$r$のべきを2の代わりに$2+\delta$とすること($r^{2+\delta}$)で逆2乗則からのずれを
表すことにしたとき,$\delta <10^{-15}$の精度で正しいことが知られている.
また$r$の値としては,少なくとも原子核の大きさのレベル($10^{-16}\,\mathrm{m}$)から
地球--木星間の距離($10^8\,\mathrm{m}$)まで正しいことが確かめられている.

\tcblower
 \includegraphics[scale=0.12]{torsionbalance.pdf}
\captionof{figure}{クーロンのねじり秤}
\end{law}

\end{document}

2016年4月22日金曜日

2016年4月17日日曜日

定理環境をmdframedからtcolorboxへ乗り換え

追記:2016/05/02 以前に掲載していた定理環境のマクロでは、カウンターが変化しないような記述をしてしまっていたので、全面的に書き換えました。
追記:2016/06/06 tcolorboxのオプションを追加できるように書き直しをしました(tcolorboxを使った定理環境)。

LaTeXの話です。
これまで定理環境の修飾にmdframed.styを利用してきました。
しかし上の投稿で用いた記述をしていると、定理環境がページの下部にきたとき、まれに以下のように環境が新しいページに送られてしまい変なところで改ページが起こります。
TeX-LaTeX Stack Exchangeでも同様の不具合が報告されていて、mdframed.styの作者が回答して解決しているようなのですが、私の場合は上手く行きませんでした。タイトル部分の位置の計算に問題があるようです。

そういう訳で、mdframed.styよりも高い表現力を持つtcolorbox.styには興味を持っていました。今回は、mdframed.styで記述していた部分を、ソースの変更無しにtcolorboxで置き換えてみたので、その紹介をします。

tcolorbox.styで置き換えた結果は次のようになりました。

見た目はほとんど変わっていません。中のboxは別のtcolorbox環境です。
この定理環境のソースコードは次のようになります。

\usepackage{tcolorbox}
\usepackage{varwidth} 
\tcbuselibrary{breakable}
\tcbuselibrary{skins}

\definecolor{frameinnercolor}{RGB}{49,44,44}

\newcounter{theorem}
\numberwithin{theorem}{section}% numberwithinはamsmath.styで定義されている
\newenvironment{theorem}[2][]{%
%#1 = タイトル, #2 = 定理環境名
\refstepcounter{theorem}%
\newtcolorbox{theobox}[1][]{%
enhanced,frame empty,interior empty,
coltitle=white,fonttitle=\bfseries,colbacktitle=frameinnercolor,
extras broken={frame empty,interior empty},
borderline={0.5mm}{0mm}{frameinnercolor},
sharp corners=downhill,
breakable=true,
top=4mm,
before skip=3.5mm,
attach boxed title to top left={yshift=-3mm,xshift=3mm},
boxed title style={boxrule=0pt,sharp corners=all},varwidth boxed title,
title=##1,
}
\ifstrempty{#1}{% ifstremptyはetoolbox.styで定義.etoolbox.styはtcolorboxが読み込むので宣言不要
\begin{theobox}[#2~\thetheorem.]}
{\begin{theobox}[#2~\thetheorem:~{#1}]}
}{\end{theobox}}


\newenvironment{theo}[1][]%
{\begin{theorem}[#1]{定理}%
}{\end{theorem}}


\newenvironment{prop}[1][]%
{\begin{theorem}[#1]{命題}%
}{\end{theorem}}

\newenvironment{lem}[1][]%
{\begin{theorem}[#1]{補題}%
}{\end{theorem}}

多くのスタイルファイルで定義されている定理環境では、タイトルは省略可能な引数になっているのですが、tcoloboxのtheorems  libraryで作る定理環境は、タイトルやラベルが省略できない仕様になっており、省略したい場合は空の括弧を書いて置かなければならないようです。私が作っているノートでは、タイトルを省略可能なタイプの定理環境で記述しているため、theorems libraryを使わないで定理環境を作ってみました。

ここではtheoremという2つの引数を持つ環境を最初に定義しています.
第1の引数には省略可能なタイトル,第2の引数には定理環境名をそれぞれ入れるようにしています.その後でこのtheoremという環境を使ってtheoという環境を定義しています.これはtheorem環境の第2の引数に「定理」や「命題」などを入れることで新しい定理型環境を簡単に作れるようにしました.但しカウンターは全て共通しているので,通し番号をつける使い方しかできません.

breakableライブラリを使って複数ページにわたる枠囲みが表示できるようにしています。枠がページをまたぐときに、枠内の設定がデフォルトに戻ってしまうらしく、それを防ぐためにextras brokenオプションでページをまたいだ枠内の設定を行う必要がありました。

これで今までのノートのソースを変更することなくtcolorboxへの移行ができました。変な改ページも無くなったので現時点では満足しています。tcolorboxはマニュアルを見るとかなり色々なことが出来そうなので、もっと見栄えの良いノートを作りたくなってきました。


また、tcolorboxのカウンター機能を使えばもっとスマートになると思い、newtcolorboxの定義のオプションにauto counterを入れて次のような定理環境を作ってみました。
しかし私のノートでは、カウンターの番号が幾つかずれてしまい上手く機能しませんでした。原因は何なのだろう。
\usepackage{tcolorbox}
\usepackage{varwidth} 
\tcbuselibrary{breakable}
\tcbuselibrary{skins}

\definecolor{frameinnercolor}{RGB}{49,44,44}

\newtcolorbox[auto counter,number within=section]{theobox}[1][]{%
enhanced,frame empty,interior empty,
coltitle=white,fonttitle=\bfseries,colbacktitle=frameinnercolor,
extras broken={frame empty,interior empty},
borderline={0.5mm}{0mm}{frameinnercolor},
sharp corners=downhill,
breakable=true,
top=4mm,
before skip=3.5mm,
attach boxed title to top left={yshift=-3mm,xshift=3mm},
boxed title style={boxrule=0pt,sharp corners=all},varwidth boxed title,
title=#1,
}

\newenvironment{theorem}[2][]{%
%#1 = タイトル, #2 = 定理環境名
\ifstrempty{#1}{% ifstremptyはetoolbox.styで定義.etoolbox.styはtcolorboxが読み込むので宣言不要
\begin{theobox}[#2~\thetcbcounter.]}
{\begin{theobox}[#2~\thetcbcounter:~{#1}]}
}{\end{theobox}}

2016年2月19日金曜日

mac osx el capitanで、google日本語入力と通信するmozc_emacs_helperをビルドする

追記:2016/11/22 現時点でgoogleのgitにあるmozcのソースファイルでは、下記のパッチを当てている
src/data_manager/packed/packed_data_manager.gyp
などのファイルが無くなっているため、パッチを当てようとすると失敗します。mozcのrelease historyからバージョン 2.17.2404.10を選んでビルドしてみると成功しました。もっと新しいバージョンでも大丈夫かもしれません。






久しぶりにmac上でのmozc_emacs_helperの話題を検索してみたら、@koshian's Tech Logさんのblogでタイムリーにビルドに成功したとの記事が書かれているのを見つけました。

数年前から、mac上でmozcとmozc_emacs_helperをビルドして使用することができるのは知っていましたが、mozcの設定ツールなどguiで操作するものはqtを利用しており、qtありでビルドに成功した記事が見つからず、設定の変更や辞書登録が使えないのでこれまで使用を見送っていました。

mozc_emacs_helperとGoogle日本語入力の間で通信を行えるようになったことで、設定の変更や辞書登録などがGoogle日本語入力から可能になり、利便性が格段に向上しました。

Google日本語入力と通信する mozc_emacs_helper を Mac OS X でビルドする

(@koshian's Tech Log)

hiroohongo's memoさんの記事「mozc_emacs_helper の Windows上のコンパイル」にdepot_toolsを使ってうまく行かなかったとの情報があったので、mac portsからpython2.7とninjaをインストールしました。

ビルドの過程は上記のブログに詳しいので詳細は省きますが、ブログの手順通りでビルドに成功しました。ありがとうございます。


Google日本語入力で辞書登録した単語も候補に挙がるそうなので便利です。El CapitanにしてからMacの日本語入力の挙動が重くなってしまい、毎日のようにプロセスを再起動しなければならなくなっていたので、これを機にGoogle日本語入力に移行しようと思います。


追記:hiroohongo's memoさんのブログを参考にninjaとpyshon2.7は自前で導入しwindow10上でもmozc_emacs_helperをビルドしてみました。コンパイルはエラーなく終了するものの、動作確認をすると以前に試したものと同じように日本語への切り替えができていない旨の結果が得られました。何故なんだろう。