2013年12月6日金曜日

Tikzとplatexで図画間結合

zrbabblerさんのblog「マクロツイーター」の記事「TikZはdvipdfmxをどこまでサポートするか?(1)」同(2)を真似て図画間結合なるものを試してみました.


このように,図画間結合を使えばtikzpicture環境の外にあるノードを参照して矢印でつなぐことが出来ます.ソースのサンプルはzrさんのblogに詳しいので省略します.文章をまたいでノードを繋げることも出来ます.


Tikzは色々なことが出来て楽しいです。

2013年11月23日土曜日

Mac OS X MavericksにアップグレードするとiStat Nanoのプロセスが表示されなくなった件

MacBook Air Mid 2012のOSをMavericksにアップグレードしました.
特に挙動が良くなったとは感じられないのですが,メモリを余分に使うようになった気がします.メモリは8G積んでいるのですが,これまでは4Gほど使っていたものが,残り1G程になることもしばしば起こります.

また,TeXの原稿を書いている際にSkimからEmacsへSyncTeXを使ってinverse searchをすると,Emacsのウィンドウが背面に隠れているとinverse serachの反応が悪くなったように思います.

Mavericksの新機能として,ウィンドウが隠れているアプリの処理速度を下げる機能がついたのが原因なのかもしれません.

さて,OS XのウィジェットでCPUの使用率や温度,メモリの使用量などを見ることが出来るiStat Nanoというものがありますが,Mavericksにアップグレードしてからプロセスの表示が出来なくなっていました.

ググってみると「今感じていること」というブログの「iStat NanoやiStat Proでプロセスが表示されなくなった」という記事に解決法が書いてあったので記録しておきます.

私が使っているのはiStat Nanoなので上記ブログの記事と少し違うところがあります.

まずターミナルを起動して,
open ~/Library/Widgets
と打ち込みライブラリフォルダ内のWidgetsフォルダをFinderで表示します.

この中にあるiStat nano.wdgtを右クリックして「パッケージの内容を表示」を選択します.

この中にあるworker.jsをテキストエディタで開き,ファイル内を「PID|」で検索します.
するとヒットする箇所が二カ所あるので,「PID|$\$$」を「PID| $\$$」のように$\$$のまえに半角スペースを挿入して保存し閉じます.

iStat nanoウィジェットを一端消去し,再び追加するとプロセスが表示されるようになりました.

Google Chrome Helperというプロセスが多いのですが,これはタブを多く開いていたり,拡張機能を入れていると立ち上がるプロセスのようです.

2013年11月22日金曜日

Tikzで鉄心に巻いたコイルの作図

TeX Stack ExchangeのModify Tikz coil decorationに,芯に巻いたコイルの作図の仕方が載っています.coil decorationを使って実現してあるのですが,以前に書いたようにcoil decorationではパラメータの選び方によって端に直線的な部分が残ってしまい使い勝手がよくありません.

以前の記事でcoil decorationを修正したgluon decorationを紹介しましたが,今回はこれを流用して端に直線部分が残らないものを作ってみます.

まず,上記のModify Tikz coil decorationの記事にあるように以下の内容をpgflibrarydecorations.mypathmorphing.code.texという名前で保存します.

\def\pgfpoint@oncoil#1#2#3{%
  \pgf@x=#1\pgfdecorationsegmentamplitude%
  \pgf@x=\pgfdecorationsegmentaspect\pgf@x%
  \pgf@y=#2\pgfdecorationsegmentamplitude%
  \pgf@xa=0.083333333333\pgfdecorationsegmentlength%
  \advance\pgf@x by#3\pgf@xa%
}

% gluonup decoration
%
% Parameters: \pgfdecorationsegmentamplitude, \pgfdecorationsegmentlength,

\pgfdeclaredecoration{gluonup}{initial}
{
  \state{initial}[
    width=+0pt,
    next state=coil,
    persistent precomputation={
      \pgfmathsetmacro\matchinglength{
        (ceil(\pgfdecoratedinputsegmentlength / \pgfdecorationsegmentlength) - \pgfdecoratedinputsegmentlength / \pgfdecorationsegmentlength) > 0.5
        ? (\pgfdecoratedinputsegmentlength - 2 * \pgfdecorationsegmentaspect * \pgfdecorationsegmentamplitude) / (floor(\pgfdecoratedinputsegmentlength / \pgfdecorationsegmentlength) + 0.499)
        : (\pgfdecoratedinputsegmentlength - 2 * \pgfdecorationsegmentaspect * \pgfdecorationsegmentamplitude) / (ceil(\pgfdecoratedinputsegmentlength / \pgfdecorationsegmentlength) + 0.499)
      }
      \setlength{\pgfdecorationsegmentlength}{\matchinglength pt}
    },
  ]{}
  \state{coil}[switch if less than=%
    0.5\pgfdecorationsegmentlength+%
    \pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude+%
    \pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude to last,
               width=+\pgfdecorationsegmentlength]
  {
    \pgfpathcurveto
    {\pgfpoint@oncoil{0    }{ 0.555}{1}}
    {\pgfpoint@oncoil{0.445}{ 1    }{2}}
    {\pgfpoint@oncoil{1    }{ 1    }{3}}
    \pgfpathmoveto{\pgfpoint@oncoil{1    }{-1    }{9}}
    \pgfpathcurveto
    {\pgfpoint@oncoil{0.445}{-1    }{10}}
    {\pgfpoint@oncoil{0    }{-0.555}{11}}
    {\pgfpoint@oncoil{0    }{ 0    }{12}}
  }
  \state{last}[next state=final]
  {
    \pgfpathcurveto
    {\pgfpoint@oncoil{0    }{ 0.555}{1}}
    {\pgfpoint@oncoil{0.445}{ 1    }{2}}
    {\pgfpoint@oncoil{1    }{ 1    }{3}}
    \pgfpathmoveto{\pgfpoint@oncoil{2    }{ 0    }{6}}
  }
  \state{final}{}
}



% gluondown decoration
%
% Parameters: \pgfdecorationsegmentamplitude, \pgfdecorationsegmentlength,

\pgfdeclaredecoration{gluondown}{initial}
{
  \state{initial}[
    width=+0pt,
    next state=coil,
    persistent precomputation={
      \pgfmathsetmacro\matchinglength{
        (ceil(\pgfdecoratedinputsegmentlength / \pgfdecorationsegmentlength) - \pgfdecoratedinputsegmentlength / \pgfdecorationsegmentlength) > 0.5
        ? (\pgfdecoratedinputsegmentlength - 2 * \pgfdecorationsegmentaspect * \pgfdecorationsegmentamplitude) / (floor(\pgfdecoratedinputsegmentlength / \pgfdecorationsegmentlength) + 0.499)
        : (\pgfdecoratedinputsegmentlength - 2 * \pgfdecorationsegmentaspect * \pgfdecorationsegmentamplitude) / (ceil(\pgfdecoratedinputsegmentlength / \pgfdecorationsegmentlength) + 0.499)
      }
      \setlength{\pgfdecorationsegmentlength}{\matchinglength pt}
    },
  ]{}
  \state{coil}[switch if less than=%
    0.5\pgfdecorationsegmentlength+%
    \pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude+%
    \pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude to last,
               width=+\pgfdecorationsegmentlength]
  {
    \pgfpathmoveto{\pgfpoint@oncoil{1    }{1    }{3}}
    \pgfpathcurveto
    {\pgfpoint@oncoil{1.555}{ 1    }{4}}
    {\pgfpoint@oncoil{2    }{ 0.555}{5}}
    {\pgfpoint@oncoil{2    }{ 0    }{6}}
    \pgfpathcurveto
    {\pgfpoint@oncoil{2    }{-0.555}{7}}
    {\pgfpoint@oncoil{1.555}{-1    }{8}}
    {\pgfpoint@oncoil{1    }{-1    }{9}}
  }
  \state{last}[next state=final]
  {
    \pgfpathmoveto{\pgfpoint@oncoil{1    }{ 1    }{3}}
    \pgfpathcurveto
    {\pgfpoint@oncoil{1.555}{ 1    }{4}}
    {\pgfpoint@oncoil{2    }{ 0.555}{5}}
    {\pgfpoint@oncoil{2    }{ 0    }{6}}
  }
  \state{final}{}
}

\endinput

これは以前記事にしたgluon decorationをgluonup, gluondowの2つに分割して描画するというものです.
書いてある内容はあまり理解していませんが,いじくっていたらそれっぽい出力が得られたのでよしとします.

実際に次のようなファイルを作成してみます.

\documentclass[a4paper]{article}
\usepackage[dvipdfmx]{graphicx} 
\PassOptionsToPackage{svgnames}{xcolor}
\usepackage{tikz}
\usetikzlibrary{decorations}
\usepgflibrary{decorations.mypathmorphing}

\begin{document}
\begin{tikzpicture}
\draw [decorate, decoration={gluon, aspect=0.4, amplitude=4mm,  segment length=4mm},gray!50,very thick] (0,0) -- (5,0);
  \draw [decorate, decoration={gluonup, aspect=0.4, amplitude=4mm,  segment length=4mm},blue] (0,0) -- (5,0);
\node[anchor=west] at (5.1,0){gluonup};
\end{tikzpicture}

\bigskip
\begin{tikzpicture}
\draw [decorate, decoration={gluon, aspect=0.4, amplitude=4mm,  segment length=4mm},gray!50,very thick] (0,0) -- (5,0);
  \draw [decorate, decoration={gluondown, aspect=0.4, amplitude=4mm,  segment length=4mm},red] (0,0) -- (5,0);
\node[anchor=west] at (5.1,0){gluondown};
\end{tikzpicture}

\bigskip
 \begin{tikzpicture}
 \pgfmathsetmacro{\w}{3.5}
 \pgfmathsetmacro{\h}{.8}
 \pgfmathsetmacro{\r}{0.5*\h}
 \pgfmathsetmacro{\rx}{0.35*\r}
 \pgfmathsetmacro{\ry}{\r-0.0005}
 \pgfmathsetmacro{\amp}{5mm}
 \pgfmathsetmacro{\sgl}{3.2mm}

 %コイル1 (鉄心に隠れる方)
  \draw [decorate, decoration={gluonup,   aspect=0.4, amplitude=\amp,  segment length=\sgl}] (0,0) -- (\w,0);

 %鉄心1
  \filldraw[fill=white] (0,\r) -- (\w,\r) 
  arc [start angle=90, end angle = -90, x radius=\rx, y radius=\ry]
  -- (0, -\r) 
  arc [start angle=-90, end angle = 90, x radius=\rx, y radius=\ry];

 %導線
  \draw[very thick,draw=white] (0,0) |- (\w,-1.8*\h) -- (\w,0);
  \draw (0,0) |- (\w,-1.8*\h) -- (\w,0);

 %鉄心2
  \draw[fill=white](0,0) circle [x radius=\rx, y radius=\ry];

 %コイル2 (鉄心の前面)
  \draw [very thick,draw=white,decorate, decoration={gluondown, aspect=0.4, amplitude=\amp, segment length=\sgl}] (0,0) -- (\w,0);

  \draw [decorate, decoration={gluondown,   aspect=0.4, amplitude=\amp,  segment length=\sgl}] (0,0) -- (\w,0);
\end{tikzpicture}

\end{document}


これをタイプセットすると次の図が得られます.

直線的なパスに沿ってのコイルはこれでうまくいくのですが,円に沿ったコイルを描こうとするとうまくいきません.
これは元のcoil decorationでも同様で,コイル一巻きを反復して描画していることが原因のようです.

2013年10月23日水曜日

Tikzでばねを描く

随分前にinkscapeを使って高校物理の問題集に出てくるようなばねの描き方についてのエントリを書きましたが,あれはinkscapeの使い方をあまりよくわかっていない時期に書いたので必要以上に手順が面倒になっています.

Tikzではばねが簡単に描けるので,今回はその紹介をします.
TeX - LaTeX Stack Exchangeというサイトの
Coil path decoration without straight segmentというページを参考にしました.
Tikzでばねを描く際にはパスの装飾を行うdecorationsというライブラリのcoil decorationを使用すればよいのですが,segment lengthの値がうまく設定出来ていない場合には直線的なセグメントが出来てしまいます.上記のページにその不具合を修正したgluon decorationが紹介されていたので,それを拝借してcoil decorationと比較してみました.gluonは勿論QCDのファインマン・ダイアグラムに出てくるgluonです.


通常のcoil decorationでは右端部分に直線的なセグメントが残っています.
gluon decorationではそれが解消されているのが見て取れます.

\documentclass[10pt]{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\PassOptionsToPackage{svgnames}{xcolor}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{decorations.markings,decorations.pathmorphing}

%修正されたコイル gluonとして使う
\makeatletter
\pgfdeclaredecoration{gluon}{initial}
{
  \state{initial}[
    width=+0pt,
    next state=coil,
    persistent precomputation={
      \pgfmathsetmacro\matchinglength{
        (ceil(\pgfdecoratedinputsegmentlength / \pgfdecorationsegmentlength) - \pgfdecoratedinputsegmentlength / \pgfdecorationsegmentlength) > 0.5
        ? (\pgfdecoratedinputsegmentlength - 2 * \pgfdecorationsegmentaspect * \pgfdecorationsegmentamplitude) / (floor(\pgfdecoratedinputsegmentlength / \pgfdecorationsegmentlength) + 0.499)
        : (\pgfdecoratedinputsegmentlength - 2 * \pgfdecorationsegmentaspect * \pgfdecorationsegmentamplitude) / (ceil(\pgfdecoratedinputsegmentlength / \pgfdecorationsegmentlength) + 0.499)
      }
      \setlength{\pgfdecorationsegmentlength}{\matchinglength pt}
    },
  ]{}
  \state{coil}[
    switch if less than=%
      0.5\pgfdecorationsegmentlength%
      +\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude%
      +\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude to last,
    width=+\pgfdecorationsegmentlength,
  ]
  {
    \pgfpathcurveto
    {\pgfpoint@oncoil{0    }{ 0.555}{ 1}}
    {\pgfpoint@oncoil{0.445}{ 1    }{ 2}}
    {\pgfpoint@oncoil{1    }{ 1    }{ 3}}
    \pgfpathcurveto
    {\pgfpoint@oncoil{1.555}{ 1    }{ 4}}
    {\pgfpoint@oncoil{2    }{ 0.555}{ 5}}
    {\pgfpoint@oncoil{2    }{ 0    }{ 6}}
    \pgfpathcurveto
    {\pgfpoint@oncoil{2    }{-0.555}{ 7}}
    {\pgfpoint@oncoil{1.555}{-1    }{ 8}}
    {\pgfpoint@oncoil{1    }{-1    }{ 9}}
    \pgfpathcurveto
    {\pgfpoint@oncoil{0.445}{-1    }{10}}
    {\pgfpoint@oncoil{0    }{-0.555}{11}}
    {\pgfpoint@oncoil{0    }{ 0    }{12}}
  }
  \state{last}[next state=final]
  {
    \pgfpathcurveto
    {\pgfpoint@oncoil{0    }{ 0.555}{1}}
    {\pgfpoint@oncoil{0.445}{ 1    }{2}}
    {\pgfpoint@oncoil{1    }{ 1    }{3}}
    \pgfpathcurveto
    {\pgfpoint@oncoil{1.555}{ 1    }{4}}
    {\pgfpoint@oncoil{2    }{ 0.555}{5}}
    {\pgfpoint@oncoil{2    }{ 0    }{6}}
  }
  \state{final}{}
}


\begin{document}
\begin{tikzpicture}
%coil
 \begin{scope}
  \coordinate (sprright) at (0,0);
  \coordinate (sprleft) at ($(sprright)+(-2.5,0)$);
  \draw[decoration={coil,aspect=0.3,amplitude=0.3cm,segment length=1.75mm,}]
  decorate {(sprleft)-- (sprright)}; %ばね   
  \node[right=3] at (sprright){通常のcoil decoration};
  \end{scope}

%gluon
 \begin{scope}[shift={(0,-1)}]
  \coordinate (sprright) at (0,0);
  \coordinate (sprleft) at ($(sprright)+(-2.5,0)$);
  \draw[decoration={gluon,aspect=0.3,amplitude=0.3cm,segment length=1.75mm,}]
  decorate {(sprleft)-- (sprright)}; %ばね   
 \node[right=3] at (sprright){gluon decoration};
  \end{scope}

 \begin{scope}[shift={(0,-2)}]
  \coordinate (sprright) at (0,0);
  \coordinate (sprleft) at ($(sprright)+(-2.5,0)$);
  \draw[decoration={gluon,aspect=0.3,amplitude=0.3cm,segment length=1.75mm,}]
  (sprleft) -- +(-0.2,0) decorate {(sprleft)-- (sprright)}-- (sprright)-- ++(0.2,0); %ばね   
 \draw ($(sprleft)+(-0.2,0.2)$)--($(sprleft)+(-0.2,-0.2)$);
  \node[right=3] at (sprright){gluon decorationに端を付け加えたもの};
  \end{scope}
\end{tikzpicture}
\end{document}

Tikzの練習 電圧計

最近Tikzの練習をしています.
TeXのマクロなどを書いたことがないので,悪戦苦闘中です.
今回は電圧計の目盛りを作図してみました.

\documentclass[10pt]{article}
\usepackage[dvipdfmx]{graphicx}
\PassOptionsToPackage{svgnames}{xcolor}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\begin{tikzpicture}
\draw (0,0)--(3,0)-- ++(70:2.5)-- ++(-3,0)--cycle; %外枠
\coordinate (p) at ($(1.5,0)+(70:0.7)$);
\draw[thick] (p)--($(p)+(0,1)$);
\node (V) at ($(p)+(70:0.3)$){\scriptsize $\underline{\mathrm{V}}$};
\fill ($(p)+(-0.17,0)$) -- ($(p)+(0.17,0)$) -- ($(p)+(0,0.13)$)--cycle;

\coordinate (q) at ($(70:0.4)+(0.65,0)$);
\begin{scope}[shift=(q),scale=1.2]
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%% 電圧計の目盛り
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \renewcommand*{\r}{0.7}%円の半径
 \renewcommand*{\l}{0.3}%長い目盛りの長さ
 \renewcommand*{\t}{0.15}%短い目盛りの長さ

 \pgfmathparse{cos(70)}
 \let\c\pgfmathresult

 \pgfmathparse{sin(70)}
 \let\d\pgfmathresult

 \pgftransformcm{1}{0}{\c}{\d}{}%座標軸の回転とシフト
%x軸とy軸の成す角が70度の斜交座標系に座標系を変更する

 \foreach \i in {0,1,2,..., 20}
 {
 \pgfmathparse{30+6*\i}
 \let\th\pgfmathresult

 % 変数\iが5の倍数のときのみ長い目盛りを使う.
 \pgfmathparse{int(mod(\i,5))}
 \let\imod\pgfmathresult
 \ifnum\imod=0
 \pgfmathparse{\r+\l}
 \let\length\pgfmathresult
 \draw[thin] (\th:\r)--(\th:\length);
 \else
 \pgfmathparse{\r+\t}
 \let\length\pgfmathresult
 \draw[thin] (\th:\r)--(\th:\length);
 \fi
 }
\end{scope}
\end{tikzpicture}
\end{document}


使い回しをしない変数をあまり多く定義したくないのですが,座標に直接\pgfmathparseを使って記述したりするとエラーが頻出するので,エラーを避けつつようやく望みの出力に漕ぎ着けたような状況です.電圧計の目盛りはscope環境で括って,後でshiftさせているのですが望みの位置に出力されず,微調整をしているのが気になるところです.
変数を\renewcommandや\letで定義していますが,何を使うのが推奨されるのか,また再定義してしまうとtikzpicture環境外で問題が生じないのかが気になっています.


2013年9月24日火曜日

CD衝動買い

先日3ヶ月ぶりくらいにCDを買いに行きました.
最近は音楽雑誌を読んだり,Webで情報を集めたりしなくなってしまったので,片っ端から視聴して気になるものを購入して行くのですが,今回は当たりが多かったです.

TravisやPlaceboの新作に始まり,Black Joe LewisやSilver Screen, Superhumanoidsなど15枚程購入しました.まだ全体像を把握出来ていないものが多いのですが,気になった曲をピックアップしてみます.

Superhumanoidsの"Exhibitionists"を買いました.1stアルバムらしいです.気に入っているのは4曲目の"So Strange"です.ギターの音が80年代っぽい.こういうのをドリームポップというらしいです.





Black Joe Lewisは"Electric Slave"を購入しました.
これは3rdアルバムになるそうで,ファンク色が交代してブルースが全面に出ているそうです.格好良いので過去作品もチェックしたいと思います.1曲目の"Skulldiggin"が良いです.

ファンクっぽい曲よりも,こっち方面のほうが個人的には好きかもです.ブリブリした音がたまりません.


Travisの新作"Where You Stand"はタイトル曲が良いですね.

Music Videoは何度か見ていたので新鮮味には欠けますが,いつも良い作品を作ってくれるバンドです.

Silver Screenは"When You and I Were Very Young"を買いました.派手な曲はないけれどもその分飽きがこなそうです.どの曲もクォリティーが高く,経験上こういうアルバムは長い間お世話になれると思います.調べてみると,2005年にもアルバムを出しているようなので,こちらもチェックしたいと思います.
"Really No Wonder", "Only Ever Yours", "Mercy"などが良いですね.




残りはまだ聴き込んでいないのでまだなんともいえない状態です.

ちなみに今年一番聴いているのはThis Centuryの"Biography of Heartbreak"です.
6月には25枚ほどCDを購入したのですが,こいつのおかげで他のCDをきちんと聴けていません(汗)

ボーカルの髪型がエモくて若干気持ち悪く,Music Videoのおねーさんのクオリティが微妙なラインですが,名曲です.どの収録曲も耳に残る楽曲ばかりでおすすめです.

後はTurnoverというバンドの"Magnolia"が昔ながらのエモっぽい音楽性をしていて懐かしい気持ちになりました.



またZAZEN BOYSの"すとーりーず"をようやく購入しました.NUMBER GIRLファンの私は,最近のZAZEN BOYSには正直ついていけなくなりつつありましたが,今回は歌ものの割合が増えており,とっつきやすかったです.向井さんは希代のメロディーメーカーだと思うので,もっと歌を全面に出した曲を書いて欲しいなと思ったりします.


それにしても,CD屋のオッサン率が高かったのが気になりました.若い人はCDを買わなくなってしまったのかなあ.いつも近所のタワーレコーズでCDを購入しているのですが,ここが閉店になってしまったりすると衝動買いの楽しみが無くなってしまうのでかなり困ったことになってしまいます.CDを買わないと所有した気になれないのはオッサンの証拠なのかもしれません.

2013年8月30日金曜日

LuaTeX-jaでギリシャ文字のイタリック体を表示する.


先日LuaTeX-jaでギリシャ文字のイタリック体が表示されないと書きましたが,
本日LuaTeX-jaの使い方を参考にフォントのプリセット設定を変更したところ無事ギリシャ文字のイタリック体も表示されました.

fontspec パッケージによる数式フォント置換が不都合な場合は,
\usepackage[no-math]{fontspec}
\usepackage[...]{luatexja-preset}
 のようにしてください.

という記述があったので,次のようなファイルをタイプセットしてみました.


\documentclass{ltjsarticle}
\usepackage{luatexja}
\usepackage{amsmath,amssymb,mathrsfs}

\usepackage[no-math]{fontspec}
\usepackage[hiragino-pro]{luatexja-preset}


\begin{document}
あいうえお

$\mathit{\Delta}$, $\Delta$
$\mathit{\Psi}$, $\Psi$,
$A$, $\mathit{A}$, $I$, $\mathit{I}$,
$B$, $\mathit{B}$
\end{document}


ギリシャ文字のイタリック体もきちんと表示されています.

2013年8月25日日曜日

LuaTeX-jaではギリシャ文字のイタリック体が表示されない件

表題の通りです.LuaTeX-jaの使い方を参照してフォントのプリセット設定を行うと生じる現象のようです.フォントの設定を行っていない場合はきちんと表示されます.
使っている環境はMacTeX2013です.

  • まずは欧文のみ,クラスファイルはarticleの場合
\documentclass{article}
\usepackage{amsmath,amssymb,mathrsfs}

\begin{document}
$\mathit{\Delta}$, $\Delta$
$\mathit{\Psi}$, $\Psi$,
$A$, $\mathit{A}$, $I$, $\mathit{I}$,
$B$, $\mathit{B}$
\end{document}

ギリシャ文字のイタリック体もきちんと表示されています.アルファベットはイタリック体との違いが微妙ですね.


  • 次に日本語+欧文で,クラスファイルはltjsarticleの場合
\documentclass{ltjsarticle}
\usepackage{luatexja}
\usepackage{amsmath,amssymb,mathrsfs}

\begin{document}
あいうえお

$\mathit{\Delta}$, $\Delta$
$\mathit{\Psi}$, $\Psi$,
$A$, $\mathit{A}$, $I$, $\mathit{I}$,
$B$, $\mathit{B}$
\end{document}

ギリシャ文字のイタリック体は表示されていますが,埋め込まれていない和文フォントがゴシック体で表示されてしまいます.



  • 最後にフォントの埋め込み設定を行った場合.クラスファイルはltjsarticleです.
\documentclass{ltjsarticle}
\usepackage{luatexja}
\usepackage{amsmath,amssymb,mathrsfs}
\usepackage[hiragino-pro]{luatexja-preset}


\begin{document}
あいうえお

$\mathit{\Delta}$, $\Delta$
$\mathit{\Psi}$, $\Psi$,
$A$, $\mathit{A}$, $I$, $\mathit{I}$,
$B$, $\mathit{B}$
\end{document}

日本語のフォントはきちんと明朝体が表示されますが,ギリシャ文字のイタリック体が消えました.

この他にも,フォントのプリセット設定を行うと,文字の上にアクセント記号を付けるスタイルファイルであるaccents.styとアクセント記号の命令の幾つかが重複していてエラーが出ます(\acute, \grave, \check, \breve, \bar, \hat, \dot, \tilde, \ddot, \vec).

また,いつもはplatexでタイプセットしている原稿をLuaTeX-jaでタイプセットしてみたときに,bxjacalcuxパッケージを使ってもzwに関連したエラーが出てしまいました.こちらについては原因がよくわかりませんでした.

2013年8月23日金曜日

定理環境の修飾 mdframed.sty

追記:2016/04/19 定理環境をmdframedからtcolorboxを使ったものに変更しました。

LaTeXの話です.定理環境の見栄えを変更するために,mdframed.styを用いています.mdframed.styの機能はpdfTeXなどでタイプセットすることを前提にしているようで,platexではマニュアルにある機能を十分に活かすことが出来ません.

2014/05/01追記:tikzパッケージを読み込む前に,graphicxパッケージをdvipdfmxのオプションを付けて読み込むことで,platex+dvipdfmxでも以下のような例は再現出来ました。こちらを参照。

LuaTeXはpdfTeXの後継であり,この日本語対応LuaTeX-jaが開発されています.これを使えばmdframed.styの機能を十分に使えるのではないかと思い試してみました.LuaTeX-jaはTeXLive2013には標準で含まれており,lualatexコマンドを使ってタイプセットします.

mdframed.styのマニュアルにあるものを借用して,次のようなファイルををタイプセットしてみました.

\documentclass[a4paper]{ltjsarticle}
\usepackage{luatexja}
\usepackage{amsmath,amssymb,mathrsfs}
\usepackage{etoolbox}
\usepackage{tikz}
\usepackage{mdframed}

\usepackage{luatexja-fontspec}

\defaultjfontfeatures{Scale=0.92487}
  % この行がない場合,luatexja-fontspec は
  % 和文フォントの大きさを欧文フォントの 0.962212 倍
  % ([lt]jclasses でのデフォルト設定と同じ)で定義する.
  % 上の指定は,[lt]jsclasses における欧文 10pt: 和文 13Q
  % という比率に合わせるためのもの.

\setmainfont[Ligatures=TeX]{TeXGyreTermes}
\setsansfont[Ligatures=TeX]{TeXGyreHeros}

\setmainjfont[BoldFont=IPAexGothic]{IPAexMincho}
\setsansjfont{IPAexGothic}

\newjfontfamily\jisninety[CJKShape=JIS1990]{IPAexMincho}


\begin{document}
\newcounter{theo}[section]
\newenvironment{theo}[1][]{%
\stepcounter{theo}%
\ifstrempty{#1}%
{\mdfsetup{%
frametitle={%
\tikz[baseline=(current bounding box.east),outer sep=0pt]
\node[anchor=east,rectangle,fill=blue!20]
{\strut Theorem~\thetheo};}}}%
{\mdfsetup{%
frametitle={%
\tikz[baseline=(current bounding box.east),outer sep=0pt]
\node[anchor=east,rectangle,fill=blue!20]
{\strut Theorem~\thetheo:~#1};}}%
}%
\mdfsetup{innertopmargin=10pt,linecolor=blue!20,%
linewidth=2pt,topline=true,
frametitleaboveskip=\dimexpr-\ht\strutbox\relax,}
\begin{mdframed}[]\relax%
}{\end{mdframed}} 

\begin{theo}[Riemann積分の線型性]
$\mathscr{R}(I)$を$\mathbb{R}^n$の有界閉区間$I$上でRiemann可積分な実数値関数全体
 の集合とする.$\mathscr{R}(I)$は実ベクトル空間であり,$I$上の積分は
$\mathscr{R}(I)$から$\mathbb{R}$への線型写像である.即ち
\begin{equation}
 f, g\in \mathscr{R}(I),\ c\in \mathbb{R}\text{ならば}
f+g\in \mathscr{R}(I),\ cf\in \mathscr{R}(I)
\end{equation}
であり,なおかつ
  \begin{gather}
  \int_I (f+g)(x)\, dx
 =\int_I f(x)\, dx + \int_I g(x)\, dx, \\
  \int_I cf(x)\, dx 
 = c\int_I f(x)\, dx
 \end{gather}
が成り立つ.
\end{theo}
\end{document}


いい感じです.Tikzを使いこなせるようになると色々出来そうです.また,日本語の設定はLuaTeX-jaの使い方をそのまま貼付けました.そちらにあるスタイルファイルの誤記は修正してみたものの,フォントの設定を何も書かないでタイプセットすると,フォントの埋め込みをしていないファイルは日本語が全てゴシック体で表示されてしまいました.

また,LuaTeX-jaの実行速度は現時点ではかなり遅いです.数ページ程度のファイルならばあまり気になりませんが,数百ページのファイルになるとplatex+dvipdfmxの方が大分速いです.また全角幅や全角高さを表すzw, zhが使えなくなり,\zw, \zhに変更しなければならないので,platexと併用するために,ZRさんの「LuaTeX-jaでzwを使う件について」を参考にBxjatoolバンドルを導入しました(Bxtoolboxにも依存するのでこちらも導入しました).これでタイプセットコマンドとtexファイルのプリアンブルを少し変更することで使い分けが出来るようになりました.

マクロは使いこなせないので,個人的にはまだまだplatexを使う機会のほうが多そうです.

2013年8月17日土曜日

array環境でのエラー


これまで全く気がつかなかったのですが,次のような数式をLaTeXでタイプセットすると
"missing number, treated as zero."というエラーメッセージがでてしまいます.

\begin{equation}
\begin{array}{l}
  [a_1, b_1]\times \dotsb \times [a_{i-1}, b_{i-1}]\times
 \{a_i\}\times[a_{i+1}, b_{i+1}]\times \dotsb \times [a_n, b_n]\\
  [a_1, b_1]\times \dotsb \times [a_{i-1}, b_{i-1}]\times
 \{b_i\}\times[a_{i+1}, b_{i+1}]\times \dotsb \times [a_n, b_n]
\end{array}
\end{equation}

これは1行目で\\を用いて改行した直後に[]で囲まれた文字列を持ってくると,改行後のスペースと勘違いしてエラーを起こすようです(例えば\\[3pt]と記述すると3pt行間が空く).エラーの回避方法としては,\\の直後に括弧を入れて\\{}とし,区切りを明確にしてやることだそうです.

これまでこういう数式を打ったことが無いことに軽く衝撃を受けました.

Windows 8にTex環境を構築(2) YaTeXの設定 ドル記号入力で数式入力モードへ

Emacsを使ってTeX原稿を作成するときにYaTeXが欠かせません.
Windowsの環境では,表題にあるような自動で数式入力モードに切り替わる環境設定の仕方がわからずに,原稿を作成していてストレスがたまるために,ネイティブなTeX環境を構築するのを半ばあきらめ気味でした.

MacでKeyRemap4MacBookを使ってほぼ目的を達成出来たので,同様の手段で上記の実現が出来ないか模索してみました.

結果的にはAutoHotkeyというソフトを用いることでほぼ満足の行く設定が出来ました.

AutoHotkeyはホットキーへの機能の割り当てを行うスクリプトエンジンだそうで,かなり高機能でいろいろなことができるようです.

AutoHotkeyの設定の仕方などはほかにも色々説明が詳しいサイトがあるので,ここでは必要最低限のことだけにします.

AutoHotkey Wiki や AutoHotkeyを流行らせるページ ミラーページ が詳しいようです.

まず公式ページからAutoHotkey_L_Install.exeをダウンロードしてインストールを行います.

AutoHotkye Wikiページによると,

AutoHotkeyをインストーラーでインストールすると、拡張子 .ahkのファイルに関連付けが行われ、拡張子 .ahkのスクリプトファイルをエクスプローラでダブルクリックしたときなどにAutoHotkey.exeで実行されるようになる。

ということだそうで,拡張子.ahkのスクリプトファイルにキーの割り当て変更などの設定を書き込んで実行させる形式です.

Emacs上でドル記号を入力した際に,IMEをオフにしてドル記号を入力するような設定ファイルを作成しました.

;-----------------------------------------------------------
; IMEの状態をセット
;   SetSts          1:ON / 0:OFF
;   WinTitle="A"    対象Window
;   戻り値          0:成功 / 0以外:失敗
;-----------------------------------------------------------
IME_SET(SetSts, WinTitle="A")    {
 ControlGet,hwnd,HWND,,,%WinTitle%
 if (WinActive(WinTitle)) {
  ptrSize := !A_PtrSize ? 4 : A_PtrSize
     VarSetCapacity(stGTI, cbSize:=4+4+(PtrSize*6)+16, 0)
     NumPut(cbSize, stGTI,  0, "UInt")   ; DWORD   cbSize;
  hwnd := DllCall("GetGUIThreadInfo", Uint,0, Uint,&stGTI)
              ? NumGet(stGTI,8+PtrSize,"UInt") : hwnd
 }

    return DllCall("SendMessage"
          , UInt, DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hwnd)
          , UInt, 0x0283  ;Message : WM_IME_CONTROL
          ,  Int, 0x006   ;wParam  : IMC_SETOPENSTATUS
          ,  Int, SetSts) ;lParam  : 0 or 1
}


#IfWinActive ahk_class Emacs
$::
IME_SET(0)
Send,$
return
#IfWinActive

#IfWinActiveで囲んだ部分はemacsのウィンドウがアクティブな状況でのみ働くようにする設定で,ahk_classというものを特定しておかなければならないのですが,これはAutoIt3 Window Spyを起動してahk_classの知りたいアプリケーションをアクティブにすれば表示されます.これを例えばemacs_insert_dollar.ahktという名前で保存し,Convert .ahk to .exeという実行ファイルを起動してこのahkファイルを処理するとemacs_insert_dollar.exeという実行ファイルが作成されます.これをスタートアップフォルダに移すなどして,起動時に実行されるようにすれば,Emacsウィンドウをアクティブにしている場合にのみドル記号が直接入力されます.

IME_SETという関数はeamat@Cabinetで配布されているIME20121110.zip内のIME.ahkに記述されています.IME.ahkはIMEを制御する関数が色々定義されているようです.

これでほぼ望みどおりの環境を整えることが出来ました.
しかしplatexの実行速度については仮想マシン上のUbuntuとあまり変わらないかもしれません.

Windows 8にTeX環境を構築(1)

追記:2015/01/19 この記事は古いため現在は同じ手順で環境を作ることはできません。特にMinGWのインストールはディレクトリ構成が変わっているようなのでご注意ください。

先日東芝のdynabook v713というデタッチャブル ウルトラブックを購入しました.電磁誘導式のデジタイザ付きで,onenoteで手書きノートを作成する目的で利用しています.

手書きノートを整理してTeX文書化するために,VMWare Playerをインストールして仮想Ubuntu 13.04環境を作り,そこでTeXLive2013をインストールすることでTeX環境を作っていました.

v713は直販以外ではSSDの容量が128GBしかなく,Ubuntu 13.04の仮想ディスクが10GB以上の容量を占めているのがどうももったいない気がしたのと,持ち歩く際に仮想環境ではバッテリーの持ちも悪くなるのではないかという懸念からWindowsネイティブなTeX環境を作ることを模索してみました.

以前にCygwin+TeXLiveの環境を作ってみたのですが,実行速度が遅すぎて使いものにならない印象でした.このTeXLiveはCygwinのリポジトリからインストールしたものだったので,TeXLiveのDVDから直接インストールし,コマンドプロンプトから実行すれば速度が改善されるのではないかと思い試してみることにしました.

結果としてやったことは
  • TeXLive2013のインストール
  • MinGWのインストール
  • NTEmacs23.4のインストール
  • AutoHotkeyをインストールしてEmacs上でドル記号の直接入力設定
です.以下でそれぞれについて述べていきます.LinuxやMac OSX上でTeX環境を作っているものの,Windowsマシンでは同様の環境が作りづらいと感じている人の参考になればと思います.

TeXLive2013のインストール

TeXLiveについては,isoファイルのダウンロードページからtexlive2013-20130530.isoをダウンロードし,仮想ディスク作成ソフト Daemon Tools Liteを使って仮想ディスクにマウントします.
マウント時にinstall-tl.batを起動するかを尋ねられますが,そのままインストールしようとしたところ,Perl関係のエラーが発生してインストールができませんでした.
そこでTeXLive on Windowsのページの下部にある注意を参考に,コマンドプロンプトから

(texliveのisoをマウントしたドライブのパス)¥install-tl -v

を実行したところ,今度はエラー無くインストールを行うことが出来ました.インストール先はデフォルト通りのC:\texliveとしました.

Windowsのファイルシステムが影響しているのか,LinuxやMacに比べてインストールにかなり時間がかかります.

インストール後,「コントロールパネル」→「システムとセキュリティ」→「システム」と進み,さらに左側にある「システムの詳細設定」を選択し,現れた「システムのプロパティ」ウィンドウ下部の「環境変数」をクリック,ユーザの環境変数の部分にPathが設定されていると思います.値はC:\texlive\2013\bin\win32でした.

他にも,C:\texlive\2013\texmf-dist\web2c\texmf.cnfのshell-escapeコマンドの編集を行うなど,TeXLiveをインストールした際にいつも行う作業をしました.

TeXLiveの更新をしようとしましたが,guiのものしか見つかりませんでした.
ターミナルから実行するにはどうするのでしょうか?


次はMinGWをインストールです.さすがにWindowsのコマンドプロンプトは使い慣れていないので,Cygwinよりも実行速度が速いらしいMinGWを試すことにしました.


MinGWのインストール

まずはMinGWの公式ページからインストーラ mingw-get-inst-20120426.exeをインストールし,実行します.mingwはフルインストールしました.容量は500MBくらいなので,Cygwinのフルインストールに比べればだいぶ軽量です.

環境変数は自動で設定してくれるのか失念してしまいましたが,ホームディレクトリはC:\cygwin64\home\(ユーザ名)に作成されており,ユーザ環境変数HOMEもこのディレクトリに設定されています.

インストール後,コマンドプロンプトからmklink /D コマンドを使ってドロップボックス内に保存しているTeXスタイルファイルフォルダから,MinGWのホームディレクトリにシンボリックリンクを作成します.

mklink /D C:\cygwin64\home\(ユーザ名)\texmf  (Dropboxの対象ディレクトリ)

Linuxのシンボリック作成コマンド ln -s とリンク作成元と作成先の順序が違うので要注意です.

MinGWを使ってTeXのタイプセットを試してみたのですが,TeXLiveの環境変数TEXMFHOMEが機能していないようです.そこでユーザ環境変数TEXMFHOMEを作成し,値を%HOME%\texmfとしました.


MinGWではminttyというターミナルが半透明化可能でカッコ良いという話なので,MinGW shellを起動して,

$ mingw-get update
$ mingw-get install msys-mintty

を実行してminttyをインストールしました.
MinGW shellからminttyを実行して,タスクバーに現れるアイコンを右クリックし,「タスクバーにピン止めする」を選択してタスクバーから実行させようとすると,そのままでは設定ファイル諸々を読み込んでくれないので,Cygwin/minttyからscreenを起動する方法を参考にタスクバーからminttyを実行できるようにしました.

minttyではbashを起動するように設定したのですが,bashの設定ファイル.bashrcをMinGWのホームディレクトリにおいても読み込んでくれないようです.そこで.bash_profileという名前のファイルを作成し,中身に

if [ -f ~/.bashrc ]; then
. ~/.bashrc

fi

を書き込みます..bashrcのほうは

# some more ls aliases
alias l='ls -CF'
alias rm='rm -i'
alias cp='cp -i'
alias ls='ls --color=auto'
alias ll='ls -la --color=auto'
alias la='ls -a --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

# reftex environment variable
export BIBINPUTS=.:$HOME/texmf/pbibtex/bib//
export INDEXSTYLE=.:$HOME/texmf/makeindex//

という設定をしました.


NTEmacsのインストール

NTEmacsはsourceforgeのgnupackプロジェクトのダウンロードページからemacs-23.4-20120527.exeをダウンロードしました.現時点で最新版は24.2なのですが,emacs24では自分が愛用しているwiden-window.elがうまくはたらかないのでemacs23系列を利用しています.こちらは解凍したディレクトリがそのままインストールディレクトリになるので,私はCドライブ直下に配置し,環境変数のPathにbinディレクトリへのパスを通しました.

gnupackのemacsはIMEパッチ施しているので,MSIMEを使ったインライン入力が可能です.私はGoogle日本語入力を導入していますが,Google日本語入力でははじめからインライン入力が可能なようです.

以下にEmacsの設定ファイル(~/.emacs.d/init.el)を晒しておきます.

;;;; 初期設定ファイルの指定
(setq user-init-file "~/.emacs.d/init.el")

;;; マクロサーチパスの追加
(setq load-path (cons "~/lib/emacs" load-path))


;;; 言語環境の指定
(set-language-environment "Japanese")


;;;エンコーディング設定
(set-default-coding-systems 'utf-8)
(set-buffer-file-coding-system 'utf-8-unix)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(setq file-name-coding-system 'utf-8)

;;; emacsclient サーバを起動
(server-start)


;;; 起動直後のカレントディレクトリ(find-fileのパス)を~/にする
(cd "~/")

;;複数のバージョンをバックアップとして保存
(setq version-control nil)

;; 最近使ったファイルを記憶させる
;;   使い方は M-x recentf-open-files
;;(recentf-mode 1)
(require 'recentf)
(when (require 'recentf nil t)
  (setq recentf-max-saved-items 100)
  (setq recentf-exclude '(".recentf"))
  (setq recentf-auto-cleanup 20)
  (setq recentf-auto-save-timer
        (run-with-idle-timer 30 t 'recentf-save-list))
  (recentf-mode 1))

(global-set-key "\C-xf" 'recentf-open-files) ;;履歴一覧を開く。


;;; IME の設定 
(setq default-input-method "W32-IME")
(w32-ime-initialize)
(setq-default w32-ime-mode-line-state-indicator "[Aa]") 
(setq w32-ime-mode-line-state-indicator-list '("[Aa]" "[あ]" "[Aa]")) 


;;; IME ON/OFF 時にカーソル色を変える。
(add-hook 'w32-ime-on-hook
          (lambda () (set-cursor-color "red")))
(add-hook 'w32-ime-off-hook
          (lambda () (set-cursor-color "white")))





;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Emacs のフォント/カラー設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq default-frame-alist 
      (append
       '((width . 80) (height . 29) 
  (top . 0) (left . 300);; ウィンドウサイズ
  )
       default-frame-alist)) 

(set-face-background 'default "#333366") ;; 標準の背景色
(set-face-foreground 'default "white")   ;; 標準の文字色

(setq load-path (cons "~/lib/emacs/color-theme-6.6.0" load-path))
(require 'color-theme) ;; color-theme.elを使う
(color-theme-initialize)
(color-theme-taylor)
;; デフォルトの透明度を設定する (85%)
(add-to-list 'default-frame-alist '(alpha . 80))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ウィンドウ関係
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; widen-window フォーカスのある window のサイズが自動的に大きくなる
(require 'widen-window)
(global-widen-window-mode 1)
(setq ww-ratio 0.7)
 ;window widening が機能してほしいタイミングを追加
(setq ww-advised-functions
      (append ww-advised-functions
       '(;recenter
  windmove-up
  windmove-down
  windmove-right
  windmove-left)))


 ;;; メニューバーを消す
 (menu-bar-mode nil)
 ;;; ツールバーを消す
 (tool-bar-mode -1)

 ;; 起動時の画面はいらない
 (setq inhibit-startup-message t)

 ;;;対応する括弧をハイライトする
 (show-paren-mode t)

  ;;片方の括弧が画面外にあるときのための設定
 (setq show-paren-style 'mixed)
 (set-face-background 'show-paren-match-face "gray10")
 (set-face-foreground 'show-paren-match-face "SkyBlue")


 ;;;対応する括弧へ飛ぶ (Ctrl-x %)
(progn
  (defvar com-point nil
    "Remember com point as a marker. \(buffer specific\)")
  (set-default 'com-point (make-marker))
  (defun getcom (arg)
    "Get com part of prefix-argument ARG."
    (cond ((null arg) nil)
          ((consp arg) (cdr arg))
          (t nil)))
  (defun paren-match (arg)
    "Go to the matching parenthesis."
    (interactive "P")
    (let ((com (getcom arg)))
      (if (numberp arg)
          (if (or (> arg 99) (< arg 1))
              (error "Prefix must be between 1 and 99.")
            (goto-char
             (if (> (point-max) 80000)
                 (* (/ (point-max) 100) arg)
               (/ (* (point-max) arg) 100)))
            (back-to-indentation))
        (cond ((looking-at "[\(\[{]")
               (if com (move-marker com-point (point)))
               (forward-sexp 1)
               (if com
                   (paren-match nil com)
                 (backward-char)))
              ((looking-at "[])]}")
               (forward-char)
               (if com (move-marker com-point (point)))
               (backward-sexp 1)
               (if com (paren-match nil com)))
              (t (error ""))))))
  (define-key ctl-x-map "%" 'paren-match))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; タブ、全角スペースを表示する
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defface my-face-r-1 '((t (:background "gray15"))) nil)
(defface my-face-b-1 '((t (:background "gray"))) nil)
(defface my-face-b-2 '((t (:background "gray26"))) nil)
(defface my-face-u-1 '((t (:foreground "red" :underline t))) nil)
(defvar my-face-r-1 'my-face-r-1)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
(defvar my-face-u-1 'my-face-u-1)
(defadvice font-lock-mode (before my-font-lock-mode())
  (font-lock-add-keywords
   major-mode
   '(
     ("\t" 0 my-face-b-2 append)
     (" " 0 my-face-b-2 append)
     ("[ \t]+$" 0 my-face-u-1 append)
     (" [\r]*\n" 0 my-face-r-1 append)
     )))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 編集行を目立たせる(現在行をハイライト表示する)
;;;;;;;;;p;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defface hlline-face
  '((((class color)
      (background dark))
     (:background "dark slate gray"))
    (((class color)
      (background light))
;     (:background "ForestGreen"))
     (:background "Skyblue"))
    (t
     ()))
  "*Face used by hl-line.")
(setq hl-line-face 'hlline-face)
;; (setq hl-line-face 'underline) ; 下線
(global-hl-line-mode)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;バッファ移動を直感的にShift + ↓ or → or ← or ↑で行う
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq windmove-wrap-around t)
(windmove-default-keybindings)
;;Control + Shift + ↓ or → or ← or ↑でバッファ間移動
;; (global-set-key [?\C-\S-f] 'windmove-left)
;; (global-set-key [?\C-\S-b] 'windmove-right)
;; (global-set-key [?\C-\S-p] 'windmove-up)
;; (global-set-key [?\C-\S-n] 'windmove-down)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;;; TeX-master は安全な局所変数として扱う
;;; from AUCTeX tex.el 
(put 'TeX-master 'safe-local-variable
     (lambda (x)
       (or (stringp x)
    (member x (quote (t nil shared dwim))))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; YaTeX 1.77
;;   [La]TeX 入力モード
;;   M-x yatex とするか、.tex で終わるファイルを読み込むと起動します
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq load-path (cons "~/lib/emacs/yatex1.77" load-path))

(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)

;; ローカル辞書(あるディレクトリのみで有効なコマンドを保存する)を使わない
(setq YaTeX-nervous nil)

;; *YaTeX-typesetting* のバッファーが文字化けしないようにする
(setq YaTeX-latex-message-code 'utf-8)

;;タイプセットの自動rerunを無効化
(setq YaTeX-typeset-auto-rerun nil)

;;コマンドの引数をミニバッファで入力しない
(setq YaTeX-skip-default-reader t)

;;usepackageの挿入提案を出さないようにする
(defun YaTeX-package-auto-usepackage (macro type) nil)

;; YaTeX-mode
(setq auto-mode-alist
      (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(setq 
       dvi2-command "rundll32 shell32,ShellExec_RunDLL SumatraPDF -reuse-instance"
      tex-command "platex -kanji=utf8 -shell-restricted -synctex=1"
      dvipdf-command "dvipdfmx"
      bibtex-command "pbibtex -kanji=utf8"
      makeindex-command "mendex -U"
      YaTeX-kanji-code 4) ;kanji-code 3: euc-jp, 4: utf-8


;; AMSTeXを使う
(setq YaTeX-use-AMS-LaTeX t)


;;YaTeX カスタマイズ
(setq yatex-mode-load-hook
      '(lambda()
  (YaTeX-define-begend-key "bP" "proof")
  (YaTeX-define-begend-key "ba" "align")
  (YaTeX-define-begend-key "bg" "gather")
  (YaTeX-define-begend-key "bf" "figure")
  ))


;;数式記号の個人設定
(setq
 YaTeX-math-sign-alist-private
 '(
   ("sc"        "mathscr"       "\\mathscr{}")
   ("Q"         "mathbb{Q}"     "|Q")
   ("C"         "mathbb{C}"     "|C")
   ("H"         "mathbb{H}"     "|H")
   ("Z"         "mathbb{Z}"     "ZZ")
   ("N"         "mathbb{N}"     "|N")
   ("R"         "mathbb{R}"     "|R")
   ("K"         "mathbb{K}"     "|K")
   ("lan"       "langle"        "<")
   ("ran"       "rangle"        ">")
   ("ds"        "displaystyle"  "displaystyle")
   ("tx"        "textstyle"  "textstyle")
   ("q"         "quad"          "__")
   ("qq"        "qquad"         "____")
   ("ls"        "varlimsup"     "___\nlim")
   ("li"        "varliminf"     "lim\n---")
   ("il"        "varinjlim"     "lim\n-->")
   ("st"        "text{ s.~t. }" "s.t.")
   ("bigop"     "bigoplus"      "_\n(+)~")
   ("bigot"     "bigotimes"     "_\n(x)\n ~")
   ("pl"        "varprojlim"    "lim\n<-- 1="" 40="" 41="" 91="" 93="" add-hook="" alt="" atex-font-lock-recenter="" atex-visit-main="" atex="" buffer-file-name="" buffer-name="" c="" concat="" cond="" control="" count-lines="" define-key="" defun="" efine="" eftex-mode="" enable-local-variables="" expand-file-name="" f="" file-name-sans-extension="" following-char="" forward-search="" forward="" fwdsumatrapdf-forward-search="" fwdsumatrapdf="" hellexec_rundll="" interactive="" j="" kbd="" key="" lambda="" local-set-key="" mytex-jump-to-next="" n="" nil="" number-to-string="" or="" pdf="" point-min="" point="" process-kill-without-query="" progn="" reftex-insert-label-flags="" reftex-mode-map="" reftex-mode="" reftex="" reuse-instance="" rundll32="" s="" save-excursion="" save-restriction="" search="" setq-default="" setq="" sfte="" shell32="" skip-chars-forward="" start-process="" sumatra="" sumatrapdf-forward-search="" sumatrapdf="" synctex="" t="" table="" tex-master="" tex-parse-self="" turn-on-reftex="" umatrapdf="" widen="" yatex-mode-hook="" yatex-mode-map="" yatex-mode="" yatex-parent-file="" yatex-prefix="" yatex.el="" yatex="" ytex-jump-to-next="">") 'YaTeX-comment-region) ;指定領域のコメントアウト "C-c >"
       (define-key reftex-mode-map
  (concat YaTeX-prefix "<") 'YaTeX-uncomment-region) ;コメントアウト解除 "C-c <"
       (define-key reftex-mode-map
  (concat YaTeX-prefix ")") 'YaTeX-insert-parens-region) ;領域を括弧で括る "C-c )"
       ))

;; 上でYaTeXに譲り渡したRefTeXのコマンドを定義し直す
;;;;; labelの参照のコマンドを"C-c )"から"C-h )"に変更(暫定的)
(add-hook 'reftex-mode-hook
    '(lambda ()
      (define-key reftex-mode-map "\C-h)" 'reftex-reference)
      (define-key reftex-mode-map "\C-h=" 'reftex-toc)
      (define-key reftex-mode-map "\C-h(" 'reftex-label)
      (define-key reftex-mode-map "\C-h[" 'reftex-citation)
      (define-key reftex-mode-map "\C-h<" 'reftex-index)
      (define-key reftex-mode-map "\C-h>" 'reftex-display-index)
      (define-key reftex-mode-map "\C-h/" 'reftex-index-selection-or-word)
      (define-key reftex-mode-map "\C-h\\" 'reftex-index-phrase-selection-or-word)
      (define-key reftex-mode-map "\C-h|" 'reftex-index-visit-phrases-buffer)
      (define-key reftex-mode-map "\C-h&" 'reftex-view-crossref)
        ))

;;;

;;; C-h&でhyperlink, hypertarget間の相互ジャンプを可能にする

(setq reftex-view-crossref-extra
      '(("\hyperlink" "\hypertarget{\\(%s\\)}" 1)
 ("\hypertarget" "\hyperlink{\\(%s\\)}" 1)))


;;; 新たなlabel環境の定義

;; \eqrefを使う
 (setq reftex-label-alist 
       '(
  (nil ?e nil "\\eqref{%s}" nil nil)
  ("theo"  ?h "theo:"  "\\ref{%s}" t ("定理"))
  ("axiom"  ?a "axiom:"  "\\ref{%s}" t ("公理"))
  ("prop"  ?p "prop:"  "\\ref{%s}" nil ("命題"))
  ("lem"   ?l "lem:"   "\\ref{%s}" nil ("補題"))
  ("defi"  ?d "defi:"   "\\ref{%s}" nil ("定義"))
  ("coro"  ?c "coro:"   "\\ref{%s}" nil ("系"))
  ("exercise"  ?x "exercise:"   "\\ref{%s}" nil ("問"))
  ))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Asymptote モード
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq load-path (cons "~/lib/emacs/asymptote" load-path))
(autoload 'asy-mode "asy-mode.el" "Asymptote major mode." t)
(autoload 'lasy-mode "asy-mode.el" "hybrid Asymptote/Latex major mode." t)
(autoload 'asy-insinuate-latex "asy-mode.el" "Asymptote insinuate LaTeX." t)
(add-to-list 'auto-mode-alist '("\\.asy$" . asy-mode))
(add-hook 'asy-mode-hook (lambda () (local-set-key [f5] 'asy-compile)))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; その他の設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; 一行が 80 字以上になった時には自動改行する
(setq fill-column 80)
(setq text-mode-hook 'turn-on-auto-fill)
(setq default-major-mode 'text-mode)

;;; ステータスラインに時間を表示する
(setq dayname-j-alist
      '(("Sun" . "日") ("Mon" . "月") ("Tue" . "火") ("Wed" . "水")
 ("Thu" . "木") ("Fri" . "金") ("Sat" . "土")))
(setq display-time-string-forms
      '(
;(format "%s年%s月%s日(%s) %s:%s %s"
;                     year month day
 (format "%s/%s(%s) %s:%s %s"
  month day
  (cdr (assoc dayname dayname-j-alist))
  24-hours minutes
  load)))
(display-time)

;;; visible-bell
(setq visible-bell t)

;;; 行番号を表示する
(line-number-mode t)

;;; バッファの最後でnewlineで新規行を追加するのを禁止する
(setq next-line-add-newlines nil)


;;; mark 領域に色付け
(setq transient-mark-mode t)

;;; 最終更新日の自動挿入
;;;   ファイルの先頭から 8 行以内に Time-stamp: <> または
;;;   Time-stamp: " " と書いてあれば、セーブ時に自動的に日付が挿入されます
(if (not (memq 'time-stamp write-file-hooks))
    (setq write-file-hooks
          (cons 'time-stamp write-file-hooks)))


Emacsの設定では,フルスクリーンの設定が未だにうまくいっていません.
フルスクリーンというよりも全画面表示的なものであったり,タスクバーの背後に画面が隠れてしまうなどするので,まだ決定的な設定が見つけられていません.

これでほぼUbuntuやMacと同じ環境を整えることが出来ました.
これまでWindowでTeX環境を作らなかった理由の1つとして,EmacsでYaTeXを用いている際に,日本語入力の状態でもドル記号を入力すると自動で数式入力モードに切り替わる機能が使えるように設定できないことがありました.

それについても記載したいと思いますが,大分長いエントリになってしまったのでそれは別のエントリに分けたいと思います.

2013年8月9日金曜日

enchantmoonをキャンセルしてdynabook v713を買いました.

enchantmoonの予約開始当日に注文し,7月末まで買う気満々でした.
液晶の保護フィルムや,ケース,デジタイザ用の単6電池まで購入して待ちわびておりました.
しかし出荷の遅れ,手書きも快適に行うことが出来ないというレビューを多く見たこと,
東芝が手書きに力を入れた製品を出したという情報を見かけたのをきっかけにenchantmoonの購入を取りやめて,評判のよかった東芝のdynabook v713を購入しました.予約はアスキーストアさんからでしたが,配送の遅延を理由にキャンセルを受け付けて頂けました.v713の購入時の価格は120,000円くらいなので,enchantmoonの価格の3倍です(汗).注文の翌日に届きました.

元々enchantmoonに興味を持っていたのは手書きのレスポンスが良いという情報だけであったので,enchant.jsなどのプログラミングの機能についての興味は無く,手書きの快適さについての情報が怪しくなった時点で興味を失いつつありました.twitterなどを見ていると,次第にレスポンスが改善されていっているようで,次回があるならば検討してみたいと思います.

キャンセルをした直後は,代わりにREGZAタブレットを購入しようかとも思ったのですが,androidタブレットであることが気にかかってしまい,いっその事初のwindows8機に手を出してしまえと思ったのでした.

結果からいうと,v713は買ってよかったと思える,満足のいく製品です(キーボードを除く).
これまでipad+7notesに始まり,asusのeee note ea 800やwacom inkling, ipad+ipenやシャープの電子ノートwg-n10などを購入してはその度に失望してきましたが,ようやく満足のいくものに出会う事が出来ました.dynabook v713は上記のものと比べると雲泥の差があります.

現在はプリインストールされているone noteを中心に使っています.デジタイザペンの先端が画面に近づくとタッチ操作を受け付けなくなり,手のひらを付けて文字を書く事ができます.描画の遅延もほとんど気にならず,ペンと画面の摩擦も程よく,固いペンで堅い画面にカツカツ書くという感じではありません.wacom feel it technologiesを搭載しているので,eee note ea800のペンが使えるのですが,こちらはツルツルカツカツして書き心地があまりよくありませんでした.またbamboo stylus feelを購入して使ってみたものの,摩擦の加減やペンの重さでは付属のペンの方が使い易い印象です.安っぽいですが.bamboo stylus feelは消しゴム機能が無いので使い辛く,ほとんど使用していません.

note anytimeがキャンペーン価格だったので購入してみたのですが,こちらはタッチ操作のために作られたアプリであり,パームリジェクション機能がないためかなり使い辛く感じました.ipadでjot proを使って書いている感覚に近いかも知れません.しかし描画の速度はipad (3rd)よりも早く,インターフェイスもone noteよりも使い易いので,パームリジェクション機能さえあれば移行したいところです.(one noteには,デスクトップ用のものとwindowsストアアプリ版があり,windowsストアアプリ版のインターフェイスの方がnote anytimeに近く使い易く感じます)

webのいろいろなところでも手書きについては評価が高いようです.私は絵を描かないのでそちらの評価は出来かねますが,文字を描く分には上に挙げたいずれよりも使い易いと思います.またwindowsマシンなので,自炊したpdfファイルや自分でTeX化したノートを眺めながら手書きノートを作るといった作業が出来ることが便利です.




勿論不満点もあるので,ここからしばらくは不満点について書いていきます.
まず第一にいろいろなところで触れられているように,付属のキーボードが使い物になりません.打鍵感は悪くないのですが,ほぼ直角までしか開かないのでかなり猫背の人でないと辛いのではないでしょうか.付属キーボードは取り付けるとusbデバイスとして認識されます.無線接続のキーボードにしなかったのはuefi画面(bios画面)に入れるようにしておくためなのか?しかしもう少しなんとかならなかったのでしょうか.キーボードのせいで価格が1万円,2万円違ってくるのならば,キーボード無しで売ってくれることを懇願したいです.

付属キーボードは使用するとストレスが溜まるので,microsoftのwedge mobile keyboardとwedge touch mouseを買いました.wedge mobile keyboardのカバーはタブレットスタンドにもなり,見た目もかっこ良くで満足しています.キーが固く,打ち辛さはありますが慣れが解消してくれるでしょう.

第2の不満点は,これも他所でも言われていることですが,必要のない抱き合わせソフトがテンコ盛りであることです.photoshop elementsは使わずとも有り難みを感じますが,128GBのSSDでユーザが使用出来る領域が数十GBしか残っていないのに,動画編集なんぞに使う人がいるんでしょうか.直販でなければSSDの増設が出来ないのも辛いですね.

第3は許容範囲ですが,wacom feel it technologiesを搭載しているものに共通して,画面の端でのペンの精度が悪い点が挙げられます.全画面表示でアプリケーションを使っていると,画面端にタスクバーやらメニューやらがくることが多いのですが,ペンで操作しようとすると位置がずれて思いがけないところをクリックしてしまうことがままあります.wacomさんに頑張って欲しいところです.

またそこそこ大きく,キーボードを外した状態でMacbook Air 11インチと同じくらいの大きさがあります.持ち運びは面倒かもしれません.

あと,負荷をかけるとファンがすごくうるさいです.普段Macbook Airを使っていると,ファンが鳴るのはCPUの使用率が以上に高い場合などに限られるので,ファンが鳴っただけでも心配してしまいます.それに比べると,動画を閲覧したりしているだけでかなり大きな音を出してファンがまわり出すので少し不快です.



その他には外部ストレージとしてsilicon powerの32GB USBメモリSonyの8GBのUSBメモリ,Lexaの64GBのSDXCカードを使って見たのですが,数GBのファイルの読み出しと書き込みを同時に行うと8割くらいの確率でフリーズします.これらが全部欠陥品とは思えないので,v713のほうに何か問題があるのではと勘ぐってしまいます.
最初はSDカードにubuntuを入れて,マルチブートが出来ればいいなと考えていたのですが,外部ストレージの読み書きが余り安定しないのと,そもそもuefiの設定画面を見てもSDカードから起動できないっぽいことと,マルチブート環境を構築したのが遠い昔なので現在風のやり方がよくわからないことから早々に挫折しました.


今はなけなしの内部ストレージにVMware Playerをインストールし,仮想のUbuntu 13.04をインストールしてTeX環境を作っています.cygwinも入れてみたのですが,platexのタイプセットが仮想マシン上のUbuntuの動作よりも遅く残念な感じでした.W32TeXは使ったことが無いのですが(角藤さんごめんなさい),windowsマシンを使っている人はTeXLiveを使うよりもやっぱりW32TeX派が多いのでしょうか?
しかし仮想マシン上でも数年前に買ったacerのculvノートよりもタイプセットが早いので,出先でTeXの原稿打ちをすることになった場合にはそこそこ使えそうです.

今はone noteで手書きのノートを作り,それを見ながらUbuntu上でTeX打ちをしたり,Dropbox上に手書きの原稿をpdfとしてエクスポートしたものを眺めながら,もしくはone note web app上の原稿をブラウザで眺めながら,Macbook AirでTeX打ちをしています.

価格コムの口コミを見ると厳しい評価が多いのですが,内容を見ると,ノートパソコンとして使うことを主体としている人が酷評しているようです.手書きノートを電子化する目的であれば,dynabook v713はかなりおすすめです.

ipen2にもかなり期待をしているので,あちらも使い勝手がよければいいなー.

2013年7月9日火曜日

族と系

Trevesの超関数論の本を読んでいて自分の理解が浅かったと思う一例として,族と系の概念の違いがあります.松坂和夫氏の「集合・位相入門」ではこれらの概念の違いを最初に明記しており,私はこの本で集合論の基礎を学んだはずなのにこれまで全然区別してきませんでした.族はfamilyの訳語,系はsystemやcollectionの訳語として用いられることが多いようです.

たとえば集合$X$の点の族は$(x_\lambda)_{\lambda\in\Lambda}$のような書き方をしますが,これは添字集合$\Lambda$から$X$への写像を表しています.この写像を$f$と書くことにすれば,任意の$\lambda\in\Lambda$に対して$f(\lambda)=x_\lambda$を満たしているということです.そういうわけで$f=(x_{\lambda})_{\lambda\in\Lambda}$と書くこともあります.これは$\lambda_1, \lambda_2\in \Lambda$, $\lambda_1\neq \lambda_2$に対して$x_{\lambda_1}=x_{\lambda_2}$であるような場合も許容します.多くの本では点の族(特に点列)のことを$\{x_\lambda\}_{\lambda\in \Lambda}$ ($\{x_i\}_{i\in \mathbb{N}}$)という表記でも扱っていますが,こちらは集合$\{x_\lambda | \lambda\in \Lambda\}$であるので概念的に全く異なります.例えば実数列$(x_i)_{i\in \mathbb{N}}$を任意の$i\in \mathbb{N}$に対して$x_i =1$であるようなものとすれば,$\{x_i\}_{i\in \mathbb{N}}=\{1\}$という唯1つの元のみからなる集合となってしまいます.杉浦さんの解析入門などでも点列は$(x_i)_{i\in \mathbb{N}}$のようにきちんと概念上の区別をおこなって表記されていますが,昔の自分はこちらの表記に違和感を感じてわざわざ$\{x_i\}_{i\in \mathbb{N}}$に書き直してノートを取ったりしています.よく概念上の違いに気づかずに今までやってこれたものだと思ってしまいます.Trevesの本でもこの辺りの概念の違いを明確に出来ていないようです.

また,〇〇系という言葉は,〇〇を要素として持つ集合という意味で用いられます.例としては,集合系(集合を要素とする集合),近傍系(近傍を要素とする集合),座標近傍系(座標近傍を要素とする集合)などです.族というときには写像であるので定義域となる添字集合が必要ですが,〇〇系という場合には添字づけられていようがいまいが自由です.例えば多様体$M$の座標近傍系はよく$\{(U_\lambda, \varphi_\lambda)\}_{\lambda\in\Lambda}$と表記されますが,これは$M$の座標近傍$(U_\lambda, \varphi_\lambda)$を要素とする集合という意味です.

何故このようなエントリを書いたかというと,じゃあこれまで誤解していたところを全て修正してやろうと考えたときに,ルベーグ積分論の完全加法族やボレル集合族はそれぞれ完全加法的な集合系やボレル集合系じゃないの?と思ってしまったからです.英語表記では,完全加法族はcompletely additive classまたは$\sigma$-algebra, ボレル集合族はBorel algebraです.その他単調族はmonotone class, 有限加法族はfinitely additive classになっているので,結論としては族はfamilyの訳語ではなくclassの訳語だと思えばよいみたいでした.

またもう1つ困っていることとしては,Warnerの可微分多様体とLie群の本では,上で述べた座標近傍のことを座標系(coordinate system), 座標近傍系のことをcollection of coordinate systemsと呼んでいます.後者のほうは,無理矢理訳すと「座標系の集まり」くらいしか訳語が思い当たりません.さすがに座標系の系と訳すのはナシでしょう.collectionを集まりと訳すのは何だか負けた気がするので,座標近傍(coordinate neighborhood)と座標近傍系(system of coordinate neighborhoods)に統一しようか思案中です.でも近傍と言われると何の近傍なの?と思ってしまうのですが,どうしたものか.

2013年6月28日金曜日

ルベーグ積分,線型位相空間論の勉強ノート4

勉強ノートを更新しました.
こちらにおいておきます.
変更点は
1. 順序集合とZornの補題の項目を追加
2. 形式的冪級数の代数的な性質についての項目を追加
3. 位相ベクトル空間としての形式的冪級数環についての項目を追加
です.どれもこれまで書くのが面倒で先送りしていた内容で,線型位相空間論としての勉強はあまり進んでいません.

順序集合とZornの補題の項目は帰納的集合の定義を通常使われているものに改めた以外は松坂和夫氏の「集合・位相入門」のままですし,形式的冪級数環についての項目はweb上で見つけたpdfを勉強したままを載せています.おそらく元ネタはBourbakiなのではと思っています.

2014/03/29:補足:ノートを更新しました.最新のノートは「勉強ノート」のタグから辿れます.

2013年6月26日水曜日

jsarticle.clsでappendixの数式番号が変

LaTeXの話です.仕様しているのはMacTeX2013です.
普段はjsbook.clsを使っているので気づかなかったのですが,久々に昔書いた原稿をタイプセットしてみると,appendixの数式番号がおかしいことに気づきました.どうやらjsarticle.clsを使う生じる症状のようです.

具体的には,appendixでの数式番号を(A.1)の形で出力してほしいのですが,これが(付録 A.1)のようになります.これはかなりウザいです.解決方法はTeX Q&Aの4396943989のやり取りにありました.

\makeatletter
%%
%% \appendix 定義を修正
%% \thesection に \presectionname(\appendixname) を追加するのではなく
%% 以降の \section に \presectionname(\appendixname) を追加してみた
%%
%% 元と違うところ
%%   (1) 目次で「付録A」とならず「A」となる
%%   (2) \label \ref の参照で「付録」が出なくなる
%%
\renewcommand{\appendix}{\par
  \setcounter{section}{0}%
  \setcounter{subsection}{0}%
  \gdef\presectionname{\appendixname}%
%  \gdef\presectionname{}%
  \gdef\postsectionname{}%
%  \gdef\thesection{\presectionname\@Alph\c@section\postsectionname}%
  \gdef\thesection{\@Alph\c@section}%
%  \gdef\thesubsection{\@Alph\c@section.\@arabic\c@subsection}%}
  \gdef\thesubsection{\thesection.\@arabic\c@subsection}%}
% 以下,追加
  \if@twocolumn
    \renewcommand{\section}{%
      \@startsection{section}{1}{\z@}%
      {0.6\Cvs}{0.4\Cvs}%
%      {\normalfont\large\headfont\raggedright}}
      {\normalfont\large\headfont\raggedright\presectionname}}
%
  \else
    \renewcommand{\section}{%
      \if@slide\clearpage\fi
      \@startsection{section}{1}{\z@}%
      {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ
      {.5\Cvs \@plus.3\Cdp}% 後アキ
%      {\normalfont\Large\headfont\raggedright}}
      {\normalfont\Large\headfont\raggedright\presectionname}}
  \fi
}
\makeatother
をプリアンブルに書いておけばよいようです.

2013年6月20日木曜日

Black Sabbath "13"を購入しました.

Black Sabbathは好きなバンドですが,"Never Say Die"と"Sabotage"は持っておらず,一番好きなアルバムは"Headless Cross"という人間です."Headless Cross"は高校生時代に1日2回をほぼ毎日1年近く聴いていた記憶があるので,少なくともこれまでに500回以上聴いた作品だと思います.自分が聴いたCDの中で最も再生回数が多いかもしれません.

勿論初期Sabbathも好きで,一時期Doom, Storner, Sludge関連の音楽をよく聞いていました.そんな私が新作"13"について言えることは,"スタジオアルバムを16枚以上持っている人にはオススメ"ということです.

"Black Sabbath"を彷彿とさせる1曲目から始まり,"N.I.B"とリフがそっくりな3曲目の"Loner"があるなど,過去のイメージを体現しようとしているアルバムだと思います.個人的に一番気に入ったのはブルース色の強い7曲目の"Damaged Soul"です.デラックスエディションを購入したのですが,Web上で他のどなたかが書かれていたように,Bonus Trackのほうがのびのびと演奏している感があります.

肝心のギターリフはあまり印象に残るものがありませんでした.正直,Heaven and Hellの"The Devil You Know"のほうが良いアルバムだと思います.ライナーノーツにあるように,Heavy Metalになる以前のBlack Sabbathを意識して作られているのが原因かもしれません.Ozzy時代の曲調に戻るにはアイディア不足な感が否めません.Black SabbathのHeavy Metalは曲に何故か気品や威厳のようなものが漂っていて,それが他のバンドには真似のしようがない特徴でもあり,その音も好きなのでこのような印象を持ってしまうのかもしれません.

Black Sabbathの前作"Forbidden"から18年も経っているそうです.Forbiddenはあまり良い評判を聞かないのですが,あれは非常に良いアルバムです.名盤です.今作に入っているギターリフよりも遥かによいリフが詰まっています."13"よりは100倍はよいアルバムです.Tony Iommiは気に入っていないようですが…."13"を手にする前に,"Dehumanizer"や"Forbidden"を購入していない人はそちらから聞くべきだと思います."Cross Purposes"あたりはどっこいどっこいかも.Black Sabbathの過去の作品を全て聴いていないので偉そうなことは言えませんが,"13"を聴くなら過去の作品とHeaven and Hell名義のアルバムを聴いてからでもいいんでないの?ということです.

考えてみると,Black Sabbathのアルバムをリアルタイムで購入したのは"Reunion"と今作だけです."Headless Cross"や"Tyr"は入手当時廃盤になっていて手に入れるのに非常に苦労した記憶があります.

2013年6月18日火曜日

Agua e Vinho ギター独奏(Daniel Wolf 編曲)

YouTubeで動画を見ていたらギターが弾きたくなってしまい,
先日サイレントギターを購入しました.
10年ぶりくらいに弾くので,昔弾いていた曲も完全に忘れてしまいました.
タルレガのラグリマくらいは弾けていたと思うのですが,楽譜が読めず体で覚えていただけだったので,全く思い出せません.

GismontiのAgua e Vinhoの動画を見ていたら,Daniel Wolfという人が編曲したバージョンがよく,しかも本人のサイトで楽譜データを販売していたので勢い余って購入してしまいました.いつかは弾きたいと思うので,その動画を貼付けておきます.



複素解析 勉強ノート2

高橋礼司氏「新版 複素解析」の勉強ノートを更新しました.
こちらに置いておきます.
以前のものに加えて,
4.4節 円板領域に対するDirichlet問題
4.5節 Laurent展開
5.1節 正則関数列の収束
5.2節の逆写像定理の証明
あたりを追加しました.等角写像あたりからは理解が怪しいので,別の教科書なんかも参考にしながら勉強し直しかなと考えています.

追記:2016/04/16 定理環境の枠囲みをmdframed.styからtcolorbox.styに変更しました.文章中の妙な改ページが無くなっていると思います.

追記:2016/05/02 定理の引用番号がおかしくなっていたのを修正しました.

2013年6月16日日曜日

Mac OS X LionのXQuartzで日本語入力

以前MacPortsからHomebrewへ移行中だということを書きましたが,
結局MacPortsに出戻りしました.理由としては,Inkscapeがビルド出来なかったことと,普段使う細々したツールがHomebrewでは見つからなかったためです.またMacPortsではdjvuファイルのしおりエディタであるdjvusmoothがビルド出来なかったので,Homebrewで出来ることを期待していたのですが,こちらも挫折してしまい,Homebrewを使う利点が無くなってしまいました.

さて,以前からX環境でInkscapeを使っているのですが,標準では日本語入力に対応していないため,日本語入力の際にはエディタからコピペをしなければならず,かなり面倒でした.

Mattintosh noteというブログのXQuartzで日本語入力(MacUIM Mozx)というエントリでそのものずばりな内容が載っていたので,これを試してみました.

こちらの記事にある通りの記述をすれば,X環境でも"Shift+Space"で日本語入力に切り替わるようになりました.システム環境設定のMacUIMの項目から,入力切り替えのホットキーも変更出来るようです.日本語入力が可能になって凄く便利になりました.


2014/05/28追記:OSをMavericksにアップグレードすると日本語入力が出来なくなりました.その場合はXQuartzやMacUIMを再インストールするとよいようです.詳しくはこちらをどうぞ.

2013年6月14日金曜日

ブエノスアイレスの四季 ギター独奏

Sergio Assad編曲のブエノスアイレスの四季の演奏を集めてみました.

春 Primavera


夏 Verano


秋 Otono


冬 Invierno

2013年6月11日火曜日

Revolvo "Fireworks"

先日Revolvoの記事を書いたばかりですが,2ndアルバム"The End Starts Here"からの曲"Fireworks"のPVを見つけたので貼付けておきます.



この曲はアルバムの3曲目で,続く4曲目の"Gone Away"も中々の佳曲だと思います.興味を持たれた方は購入してみてはいかがでしょうか.
しかし再生回数が300回ちょっとというのがなんとも残念な気がしてなりません.1stはAmazonなどで中古がかなり安く手に入ります.
最初に聴くべきは1stですが,1stが気に入れば損はしないと思います.ここまで注目されていないと応援したくなってきます.

それ以外にも1stアルバム収録曲"Moscow Mule"のPVも見つけたので貼っておきます.

2013年6月10日月曜日

ルベーグ積分論,線型位相空間論の勉強ノート3

Lebesgue積分論と線型位相空間論の勉強ノートを更新しました.
ここにおいておきます.
新たな内容としては,
柴田良弘氏の「ルベーグ積分論」の
$L^p$空間の基本的な性質の項目を追加
Trevesの「位相ベクトル空間・超関数・核」の第9章までの内容を追加
間違いや不足していた内容の追加,演習問題を幾つか解いたといったところでしょうか.
章立ての変更などをしていたら,いつのまにか600ページを超えていました.
演習問題の結果も本文に組み込んで,もう少し使い易い形にしないといけないなと考えております.Trevesの本は,色々な概念を必要となるまで持ち出さないようなスタイルで書かれているので,後から見直すときにまとまりが悪いような印象も受けます.その点Horvathの本は項目毎のまとまりがよく,一度学習したあとは使い勝手が良さそうですが,最初から読むとしんどそうにも思えます.

$X$を位相ベクトル空間とし,$M$をその部分位相ベクトル空間,$N$を$M$の代数的補空間とするとき,直積空間$M\times N$から$X$への写像$\varphi : M\times N \to X$を$\varphi(x, y)=x+y$で定義する.$\varphi$が位相ベクトル空間の同型写像であることと,標準的射影$\pi : X \to X/M$の$N$への制限$\pi |_N : N \to X/M$が位相ベクトル空間の同型写像であることが同値であることを証明するのにえらく手間取ってしまいました.$\pi |_N$が同型であるとするとき,$\varphi$の逆写像の連続性の証明にひどく時間を費やしてしまい,疲れ気味です.次からようやくFrechet空間で,具体的な関数空間が登場しますが,多変数正則関数の空間の話をする前にRiemann積分の復習をしたいところです.

あと,Trevesの本の原著タイトルは"Topological Vector Spaces, Distributions and Kernels"です.このTopological Vector Spaceに相当する日本語は線型位相空間が主流みたいですが,これはLinear Topological Spaceの訳のようです.それ以外にも位相線型空間などがあってややこしいです.

追記:2013/06/28:ノート更新のため,旧版ノートの公開を取りやめました.
新しいノートはこちらから

複素解析 勉強ノート

複素解析はこれまで何回か勉強して,その度に分かった気になるのですが,しばらくするとやっぱりわかってないなと思ってしまいます.昨年に高橋礼司氏の「複素解析」を読んで勉強していたのですが,ノートを作らずに放置していたら次第に内容を忘れ出してきたので,リハビリを兼ねてTeX化しています.Riemann面あたりの議論が雑に思えてよくわかりませんでした.種本であるForsterの本を購入したので,そちらを読んでみたいのですがなかなか時間が取れません.複素解析をある程度やって,複素変数の常微分方程式論で特殊関数を統一的に見直すのが何年か前からの1つの目標なのですが,脇見ばかりしてしまいます.

今回作ったノートはとりあえずDirichlet問題の手前,Schwarzの補題辺りまでです.
ノートをこちらに置いておきます.Hadamardの三円定理やCaratheodoryの不等式の証明など,演習問題は割ときちんと解いています.閉曲線の指数の辺りの話は,手書きノートを紛失してしまったらしく,仕上げることが出来ていません.楕円関数の辺りも少しは書いていますが,まとまってはいません.代数関数の分野は面白そうなのですが,Puiseux級数のことがあまりはっきりと理解出来たとは言えず,もやもやしたままです.Forsterの本を読めば理解できるのか?

追記2013/06/18:ノートの更新に伴い,旧版ノートの公開を取りやめました.
新しいノートはこちらから

追記2014/05/20:最新のノートはラベルの勉強ノートもしくは複素解析から辿ってみてください.

2013年6月8日土曜日

ニュー・シネマ・パラダイス ギター独奏

ニュー・シネマ・パラダイスのギター独奏動画で気になったものを集めてみました.
ニュー・シネマ・パラダイスは大好きな映画で,完全版を含めてこれまで25回は見ています.
久しぶりにギターが弾きたくなってきました.

YouTubeで最初にギター独奏の動画を探していたときに,プロの方と思しき動画はアレンジ過多で原曲の良さを損なっている感じのものが多かったのですが,次の動画はシンプルでよいと思います.どうやらギター教本の販促動画のようです.










次の動画は音質が悪くて,演奏も間違いまくっていますが,アレンジが気になったので貼付けておきます.

2013年6月5日水曜日

Greenmachine "Black Summer", "Hammer and Burner"

Greenmachineは金沢のバンドで,表題の曲が収録されているアルバム"The Archives of Rotten Blues"は再結成時に2004年に発表されたものです.
Greenmachineを知ったきっかけは,当時大学の近所の中古CD屋のワゴンセールにミニアルバム(?)の"D.A.M.N"が100円で投げ売りされており,100円なら買ってもいいかというノリで購入したことを覚えています.当時はドゥーム・ストーナーロックといったジャンルはほとんど知らず,Cathedralの2ndと3rdを持っていたくらいだったと思いますが,何曲か気になる曲があり,その後フルアルバムの"The Earth Beater"を買ってスゲエと思った記憶があります.

個人的には"The Earth Beater"が音的にも最も好みで一番気に入っているのですが,"The Archives of Rotten Blues"の音塊がぶつかってくるような感じも良いです.購入当時は"The Earth Beater"路線を期待していたので,タイトでメタリックになった音質と,うねりやグルーヴ感が後退したように感じて少しガッカリした記憶があります.改めて聴くと非常に良いのでオススメですが,CDは廃盤になっているようです.

アルバムの最初の曲である"Black Summer"のPVと"Hammer and Burner"の動画を貼付けておきます.



2013年6月4日火曜日

Revolvo "Silver Streak"

Revolvoはスウェーデンのインディーロックバンドで,2002年にアルバム"Revolvo"でデビューし,当時は日本版も発売されました.これがなかなか良いアルバムだったのですが,その後音沙汰がなく解散したものと思っていました.

ところが改めて調べてみたところ,2012年に10年ぶりのアルバム"The End Starts Here"を発表しており,現在でも活動を続けているようです.しかしレーベルがOvlover Recordsになっているので,自主制作っぽいです.CDで販売しておらず,iTunesやAmazonでmp3音源のみが購入可能な模様です.早速購入してみたのですが,前作には及ばないものの良作です.もう少し聴き込んでみたいと思います.

表題は1stアルバムからの曲です.動画を貼付けておきます.

2013年5月31日金曜日

Subarbomg "Hello"

ここ2〜3週間,散らかりまくった部屋の整頓をしています.ベッドや机をゴミに出したり,IKEAに行って新たな机や本棚を買いそろえたりで結構楽しいものです.

そんな中,これまでCDを収納するスペースが無かったため段ボール箱に入れていたのですが,これが4箱ほどあって邪魔でしょうがないので,省スペースのケースに入れ替える作業を進めています.ついでにiTunesに取り込む作業も平行して行っています.ここ10年程で買ったCDは懐かしいと思えるのですが,それ以前のものは趣味が悪いなーとか思いつつ未だに聴き直したくなるものも多いのでなかなか処分出来ません.

表題のSugarbombの"Hello"という曲は,2001年に発売されたアルバム"Bully"に収録されている名曲です.ジェリーフィッシュなどが好きな人はチェックしていたのではないでしょうか.Wikiを見ると"Bully"は2ndアルバムで,1stはもはや手に入らない状況のようです.同じくWikiによると2009年まで活動していた様子なのですが,残り8年間は何をしていたのか気になります.とにかく"Hello"は名曲なので多くのpop好きの人に聴いて欲しい1曲です.歌詞もシンプルで好きなのですが,最後の"Would you do the same for me"はいらないかな.



もしかしたらしばらく懐かしい曲シリーズの紹介をするかもしれません.
Student Rickなんかもよかったなあ.

2013年5月17日金曜日

Queens of The Stone Ageの新曲PVがなんかえげつない

Queens of The Stone Ageの新曲"I Appear Missin"のPVが公開されています.
なんかしんどいです.いい意味で.とりあえず閲覧注意です.


こちらのサイトで他にも何曲かアニメーション付きの楽曲を視聴可能です.
アニメーションは"I Appear Missin"のものよりも過激になっているので注意してください.
6月はQOTSAにBlack Sabbath, Camera ObscuraにClub8, Jimmy Eat Worldなどの新作が目白押しです.正直JEWにはあまり期待していませんが.

It's a musical "Summer Break EP"

TowerRecordsの視聴コーナーで視聴して即買いしました.
今日来日公演があるらしいですが,知るのが遅すぎた…
現在アルバムは"Music Makes Me Sick"と"For Years and Years"の2枚が出ている模様."For Years and Years"は手に入れましたが,これも良作品です.最近は表題のEPとこればっかり聴いています.

Further Seems Forever "So Cold"

Further Seems Foreverが初代のボーカルであるクリス・カラバを迎えて再結成されていたことを最近知りました.個人的には1stのthe moon is downを聴き込み,クリスが脱退後はDashboard Confessionalを買ってみたもののFurther Seems Foreverを期待しすぎていて馴染めず,2ndのhow to start a fireを買ってみたものの1stには及ばないなと思い,それ以降チェックしていませんでした.

"So Cold"のMVがよかったので貼付けておきます.


クリス以外は巨漢ぞろいなんですね.この人たちからこんなエモい楽曲が生まれるのか…

2013年4月29日月曜日

Bonnie Pink "Coin Toss" Tour

今年もBonnie Pinkのツアーがあるそうです.
昨年は"Chasing Hope"を購入してツアーのチケットも押さえていましたが,
ライブの当日にテンションがダダ下がりで,結局見に行かず終いでした.

今年のツアーはあまり予定を調整しなくても参加出来そうなので,参加したいと思います.チケット一般発売は9月1日だそうです.Bonnie Pinkさんは先日誕生日で大台に突入した模様.

Camera Obscuraの新アルバム"Desire Lines"は6月3日発売

最近あまり熱心に音楽を聴いていないのですが,Camera Obscuraは新作を楽しみにしている数少ないバンドです.

公式HPで新作"Desire Lines"が6月3日発売であることのお知らせがあり,新曲"Do It Again"の視聴ができるようになっていたので新曲の動画(静止画?)を貼付けておきます.



そこまでインパクトがある曲ではないような気もしますが,あと一ヶ月楽しみに待ちましょう.


2013年4月22日月曜日

KeyRemap4MacBookでドル記号を直接入力に

昨年の夏前まではUbuntuをメインに使っていましたが,MacBook Air (mid 2012)を購入したため現在はMacBook Airをメインに使っています.MacBook Airを購入してからも,Emacsでの日本語入力には使い慣れたmodified anthyを使ってきました.homebrewを導入したのをきっかけに(野良ビルドしたものをインストールすると怒られたので),Anthyを捨てことえりを使ってこれまでと同等の環境を作る模索をしています.

現在Emacsはインラインパッチを当てたバージョン23.4のものを使っています.
日本語入力をAnthyからことえりに切り替えるにあたっての個人的な最重要事項は,YaTeXモードにおいてドル記号が入力されると自動で英数字入力モードに切り替えが起こるようにすることです.AnthyやSKKといったものについてはそれらの入力モードでのドル記号をYatex-insert-dollarにマップするというやり方で実現されているのですが,ことえりではそのようなモードマップが用意されてないようなので同じ方法は取れそうにありません.

emacs-inline.patchでは日本語入力を快適にするための色々な変数や関数が定義されているようなので,そちらからのアプローチでどうにかならないものかと検索してみましたが,ドキュメントが充実していないことと,web上の情報で古くなっているものも多いため,elispの読み書きが出来ない人間としては,設定の仕方がイマイチよくわかりませんでした.パッチのソースを眺めてみたものの,どういう場面で使えるのかピンと来ません.

本来ならばEmacsの設定の範囲でなんとかしたいところでしたが,今回はKeyRemap4MacBookを用いてドル記号を直接入力させるようにしてみました.
KeyRemap4MacBookの設定画面を開き,"open private.xml"のボタンを押してprivate.xmlファイルを開いたあと,次を追記します.

<item>
        <name>Dollar to EISUU+Dollar on Emacs</name>
        <identifier>remap.jis_Dollar2EisuuAndDollar</identifier>
        <only>EMACS</only>
        <autogen>__KeyOverlaidModifier__ KeyCode::KEY_4, ModifierFlag::SHIFT_L, 
        KeyCode::JIS_EISUU, KeyCode::KEY_4, ModifierFlag::SHIFT_L
        </autogen>
</item>

これでEmacs.app上で$記号を入力すると自動的に英数直接入力モードに移り変わります.弊害としては,やはりYaTeXモードに限らず入力モードが切り替わってしまうことですが,これは個人的には問題ないのでしばらくこれでいってみようと思います.

追記(04/23):Emacsでの日本語入力をことえりに変えたところ,Anthyでは日本語入力モードでも領域をマークして"Control+C )"で領域を括弧で括り,しかも入力モードは切り替わらないという機能があったのですが,括弧が日本語入力になってしまうようです.これもなんとかしないとかなり不便だなあ.

2013年4月21日日曜日

KeyRemap4MacBookを使ってIME入力切り替えのキーバインドを変更


唐突ですが現在Macportsを捨ててHomebrewへ移行中です.Homebrewではインストールしたファイルを/usr/local/以下にユーザ権限で入れるようになっていますが,Homebrew導入以前にmake, make installで野良ビルドしてインストールしたアプリケーションがある場合にはディレクトリのパーミッションがrootに変更されてしまっているようで色々と怒られます.

Homebrewにないパッケージをインストールする際にはFormulaと呼ばれるものを作ってインストールするのが流儀のようですが,AnthyのFormulaを作ろうと思ってもすぐにはうまくいかなかったため,Anthyの導入そのものを見送ることにしました.

そもそもAnthyを使っていた理由としては,EmacsでYaTeXというelispを使う際にドル記号を入力すると自動的に数式入力モードに入れ替わるのが便利であったというだけで,漢字変換の精度や,ことえりと辞書を統一出来ていないことがこれまで気になっていました.いい機会なので,ことえりでこれまでの環境にどこまで近づけるか模索してみたいと思います.

まず,YaTeXでの挙動が最も懸念される事項だったのですが,これは~/.emacs.d/init.el に次のように記述することで概ね不満のない挙動をしてくれるようです.
追記04/22:YaTeXでの挙動がうまくいっていると思ったのは全くの勘違いで,emacs-inline.patchからは2010年頃にすでにmac-add-ignore-shortcut関数は削除されている模様です.なので以下の記述は全く意味がありません.未だ解決せず.
;;YaTeXモードにおけることえりの設定
(setq yatex-mode-hook
       '(lambda ()
  (progn
    (mac-add-ignore-shortcut '(?$))
    (mac-add-ignore-shortcut '(?\())
    (mac-add-ignore-shortcut '(?\)))
    (mac-add-ignore-shortcut '(? ))
    )))

昨年までずっとLinuxを使ってきた身としては,日本語入力の切り替えをControl+Backslashで行ってきたので,特にEmacsを使う際にはこのキーバインドで使いたいと思っていました.これはMacのキーボードではControl+Underscoreキーの位置に相当します.Macではバックスラッシュキーも入力し辛かったため,KeyRemap4MacBookを使ってUnderscoreキーをBackslashに割り当てるところまではしていたのですが,日本語入力の切り替えをLinux的にするにはxmlファイルを編集する必要があるので躊躇していました.

この際なので挑戦してみたら,以外に簡単だったので載せておきます.まずKeyRemap4MacBookの設定画面を開き,"open private.xml"のボタンからprivate.xmlファイルを開きます.そこに次のように記述します.
<?xml version="1.0"?>
<root>
    <item>
        <name>Control+Underscore(Ro) to KANA/EISUU(toggle)</name>
        <identifier>remap.jis_controlplusunderscore2kana_toggle</identifier>
        <autogen>
         __KeyToKey__
            KeyCode::JIS_UNDERSCORE, ModifierFlag::CONTROL_L,
            KeyCode::VK_JIS_TOGGLE_EISUU_KANA
        </autogen>
    </item> 
</root>

書式はKeyRemap4MacBookのマニュアルキーコードのデータ表を参考にしました.
identifierは識別するための名前なので適当に付けています.これでControl+Underscoreで日本語入力の切り替えが行えます.いやー.便利です.

あとはHomebrewでinkscapeのコンパイルに失敗するのがなんとかならないものか.

2013年4月18日木曜日

MacTeX 2012のdvipdfmxでpdfファイルにフォントを埋め込む

最近はLaTeXのノートをdropboxフォルダ内に作成して、色々な端末からノートのpdfファイルを見れるようにしています。

androidのスマートフォンではebookdroidというアプリを使ってpdfファイルを閲覧してるのですが、フォントが埋め込まれていない日本語pdfの明朝体が全てゴシック体表示になり読み辛いので常時フォントを埋め込む設定に変更しました。

TeXWikiのMacTeXの項目にある内容をそのまま実行しただけです。

ここではヒラギノフォントを埋め込みます。

まずターミナル上でヒラギノフォントのシンボリックリンクを作成し、TeXで使えるようにします。

$ sudo mkdir -p /usr/local/texlive/texmf-local/fonts/opentype/hiragino/
$ cd /usr/local/texlive/texmf-local/fonts/opentype/hiragino/
$ sudo ln -fs "/Library/Fonts/ヒラギノ明朝 Pro W3.otf" ./HiraMinPro-W3.otf
$ sudo ln -fs "/Library/Fonts/ヒラギノ明朝 Pro W6.otf" ./HiraMinPro-W6.otf
$ sudo ln -fs "/Library/Fonts/ヒラギノ丸ゴ Pro W4.otf" ./HiraMaruPro-W4.otf
$ sudo ln -fs "/Library/Fonts/ヒラギノ角ゴ Pro W3.otf" ./HiraKakuPro-W3.otf
$ sudo ln -fs "/Library/Fonts/ヒラギノ角ゴ Pro W6.otf" ./HiraKakuPro-W6.otf
$ sudo ln -fs "/Library/Fonts/ヒラギノ角ゴ Std W8.otf" ./HiraKakuStd-W8.otf
$ sudo mktexlsr

常時フォントを埋め込む設定にするにはupdmap-sysコマンドを使って

$ sudo updmap-sys --setoption kanjiEmbed hiragino

とします。埋め込まないもとの状態に戻すには

$ sudo updmap-sys --setoption kanjiEmbed noEmbed

とします。

TeXLive2013のpretestが始まっているみたいですね。
TeXフォーラムなどを見ていると、tlptexliveがまだ十分に使えない様子なのでもう少し様子見をしたいと思います。

2013年4月17日水曜日

自炊書籍pdfのページ番号とpdfの表示ページ番号を一致させる。

書籍の自炊をしてみて不満が残る点の1つは、pdfファイルをリーダーで表示したときのpdfとしてのページ番号と、書籍のページ番号が一致しないことです。
例えば索引で単語を調べてその単語の該当ページに移ろうとするとき、pdfのページ番号と書籍のページ番号が一致していないと不便です。adobeのacrobatではpdfのページ番号を加工出来るようですが、フリーソフトでこのようなことが出来るものに関する情報はなかなかみつかりませんでした。

KeN's GNU/Linux DiaryさんのPDFの前付用ページラベルを(Acrobatなしで)設定するというエントリで、pdfページ番号の加工が出来るRoman Nombre Setterのjavaコードが公開されています。作成者の方はPCの環境としてdebianやubuntuを想定しているようですが、macでもいけました。必要なのは

Java (OpenJDK)
iText Library

ですがどちらもmac portsに入っているので、それっぽいものを検索して導入しました。あとはhttps://github.com/kmuto/roman-nmblからroman-nmbre-master.zipをダウンロードし、ターミナルからそれを解凍して出来たディレクトリに移動し

javac -classpath /usr/share/java/itext.jar RomanNmbl.java

を実行します。その後RomanNmbl.classというファイルが作成されるのでそのファイルのあるディレクトリで例えばターミナルから

java -classpath /usr/share/java/itext.jar:. RomanNmbl A.pdf B.pdf 4

と入力すれば、最初の4ページはローマ数字でi, ii, iii, ivのようにpdfのページ番号が表示され、その後アラビア数字で1, 2, 3, …と番号づけられたB.pdfというpdfファイルが出来上がります。


ただ、これはpdfファイルの前付けをローマ数字に変えるためのものなので、例えば下巻が300ページから始まる場合などの、ページ番号をずらす操作には対応していません。でもありがたいっす。

2013年4月14日日曜日

LaTeXのenumerate環境

使ってはいけない LaTeX のコマンド・パッケージ・作法という記事を拝見しました。enumerate.styパッケージは古いのでenumitem.styパッケージに切り替えるのがおすすめだそうです。かといって
\begin{enumerate}[(i)]
\item ほげほげ
\end{enumerate}
というような記述をしていると、単純にスタイルファイルをenumitem.styに切り替えるだけではエラーメッセージが出ます。このあたりは対策も用意されているようで、
\usepackage[shortlabels]{enumitem}
のようにオプションとしてshortlabelsを指定しておくと上記のような記述でもエラーがでなくなります。ソースを徐々に書き換えていかなければいけないなあ…。

Times系のフォントもnewtx.styという新しいものが出ていたらしいです。後半は知らないことが多かったので勉強になりました。

2013年4月13日土曜日

The Prodigy "Spitfire"


カッコいい

2013年3月30日土曜日

Piazzollaのトロイロ組曲, GismontiのAgua e vinhoその他

アサド兄弟がトロイロ組曲のbandneon, whiskyを演奏している映像があったので貼付けておきます。





ジスモンチという人については殆ど知らないのですが、アサド兄弟のアルバムにあった曲がよいので探してみました。









全然関係ないですが、Toro y Moiが今更ながら気になったのでPVを貼付けておきます。

mdframed.styで定理環境を装飾する

追記:2016/05/21 定理環境をmdframed.styからtcolorbox.styに変更しました

LaTeXにおいて定理環境を枠で囲む方法は色々あるようですが、最近はthmtools.styを使っていました。ただ、枠線が通常の定理環境の外側に引かれるらしく、overfull \hboxの警告が大量に出ることや、定理環境がページを跨ぐことが出来ずレイアウトが大きく崩れることがあるのが気になっていました。

最近mdframed.styなるパッケージがあることを知り、少しずつ試していたものの、pstrickやtikzを使って描画するオプションをつけるとエラーが発生して使い物にならないためしばらく放置していました。どうやらpdftexを使ってタイプセットすることを前提としている節があり、日本語platex環境ではdefaultのオプション以外は使えないようです。

今現在試している自分の設定を晒しておきます。mdframed.styはMacTeX2012やTeXLive2012には標準で含まれているはずです。プリアンブルに以下を記述しておきます。

\usepackage{amsthm}
\usepackage{xcolor}
\usepackage{mdframed} %複数ページをまたぐフレーム
\theoremstyle{definition}
\mdfdefinestyle{theoremstyle}{%
linecolor=gray!40,linewidth=.5pt,%
backgroundcolor=gray!10,
skipabove=8pt,
skipbelow=5pt,
innerleftmargin=7pt,
innerrightmargin=7pt,
frametitlerule=true,%
frametitlerulewidth=.5pt,
frametitlebackgroundcolor=gray!15,
frametitleaboveskip=0pt,
frametitlebelowskip=0pt,
innertopmargin=.4\baselineskip,
innerbottommargin=.4\baselineskip,
shadow=true,shadowsize=3pt,shadowcolor=black!20,
theoremseparator={.},
}
\mdtheorem[style=theoremstyle]{defi}{$\blacklozenge$定義}[chapter]
\mdtheorem[style=theoremstyle]{prop}[defi]{$\blacklozenge$命題}
\mdtheorem[style=theoremstyle]{theo}[defi]{$\blacklozenge$定理}
\mdtheorem[style=theoremstyle]{lem}[defi]{$\blacklozenge$補題}
\mdtheorem[style=theoremstyle]{coro}[defi]{$\blacklozenge$系}
\mdtheorem[style=theoremstyle]{axiom}[defi]{$\blacklozenge$公理}

見た目は次のようになります。陰が無いと少し寂しい感じになるのでつけてみました。
しかしページを跨ぐときにも陰がついてしまうのが困り者です。


うーん。これじゃない感が払拭出来ませんが、thmtoolsのときよりはマシになったかも。ちなみにoverfull \hboxの警告は少なくなったものの、bad breakというmdframedの警告が大量に出るようになりました。

2013年3月23日土曜日

線形位相空間のお勉強2

Trevesの超関数の本のノートを更新しました。こちらに置いてあります。
2013/0610追記:ノートを更新したため,旧版の公開を取りやめました.
新しいノートはこちらから.

2014/05/11:追記 最新版のノートは,ラベルの「勉強ノート」をクリックして投稿を表示してみてください.

変更点はおおよそ次の通り。

第1章第6節のノートを追加。
近傍フィルターなどの記号を変更。
超フィルターを使ったTikhonov(Tychonoff)の定理の証明など。
部分集合上のフィルターの収束、集積点の定義を追加など。

Trevesの本では、部分集合上のフィルターの収束などに関して明確な定義が書いてなかったので補いました。昔に読んだときには、この辺りからもやもやし始めて力尽きたのではないかと思います。原著ではコンパクト性の定義にHausdorff性を仮定していたりして気持ちが悪いので、その部分は書き直しました。昔に作ったノートを参考にしていましたが、勘違いがかなり多く、過去の自分は信用なりません。

2013年3月20日水曜日

にんじゃりばんばん

きゃりーぱみゅぱみゅの新曲「にんじゃりばんばん」のPVが公開されていたみたいです。
楽曲は海外でのライブ映像がYouTubeで視聴出来るのでよく聴いていましたが、今回のPVは少し物足りない気がします。
振り付けで一番印象的な部分がPVにほとんど反映されていないからです。
少なくともバックダンサーはCGで置き換えるべきではなかったんじゃないかな。


0:45あたりの振り付けが印象的でいいと思うのですがどうでしょう。

PVも貼付けておきます。再生回数が既に500万回を超えている…。

2013年3月8日金曜日

Astor Piazzolla タンゴ組曲その他の動画


ピアソラのタンゴ組曲といえば、アサド兄弟のために作曲され、演奏も決定版はアサド兄弟によるものですが、他にもいくつか良いものを見つけたので貼付けておきます。





結局アサド兄弟の演奏に似たのが良いと感じてしまうようです。


AA印の悲しみも大好きな曲の1つですが、個人的には原曲に近いほうが好みです。


モサリーニさんのバンドの演奏もよいです。8:00辺りのパートで胸を抉られるような気分になります。
自分の葬式とかでかけて欲しい曲ですね。

1997年にピアソラ没後5周年企画で、ピアソラの全てという番組がNHKで放送されました。
私は当時ピアソラのことを全く知らず、メタラーだったのですが、この番組を見て魅了されてしまった記憶があります。

トロイロ組曲からzitaという曲です。トロイロ組曲ではescolasoという曲が好きなのですが、アサド兄弟以外の演奏で好みのものが見つからなかったのでこの辺で。


2013年3月7日木曜日

きゃりーぱみゅぱみゅにハマりそう

いい年こいたオッサンですが、ハマりそうです。
特にシングルのカップリングになっている曲に80年代的なちょっと切ない雰囲気の曲があって良いです。
「ピンポンがなんない」と「100%の自分に」なんか良いですね。
「Cherry Bon Bon」も良いです。


何回見ても2:30あたりでバックダンサーの子供が白目剥いて踊っているのが気になって仕方がない…





他には、少し前にCD買ったままほとんど聴いていなかったMemory TapesのGracd/Confusionにハマっています。


後はGold Motelというバンドも最近知ったのですが、今出ている2枚のアルバムとも非常にクオリティーが高いのでおすすめです。


2013年2月8日金曜日

Macでdjvuファイルのしおりの編集

djvuは画像圧縮方式であり、その圧縮方式を用いた文書形式のことです。djvu方式はスキャンした文書の圧縮に特化されていて、pdfと比べて同程度の解像度に見えるファイルでもファイルサイズがかなり小さくてすむことが特徴です。

最近、TrevesのTopological Vector Spaces, Dstributions and KernelsのDover版が出ていたので購入して読んでいたのですが、やはり英語は疲れるので訳書の「位相ベクトル空間・超関数・核」を購入して読み進めています。大昔に70ページ程読んで挫折した経験があり、今は過去に作ったノートを参考に50ページあたりまで読み進めてきました。

このトレーブの本を自炊してpdf化したのですが、上巻で50MB程あり、iPadで読むにも動作がもっさりしているのでdjvu文書に変換してみました。djvudigitalコマンドを使ってみると若干視認性は落ちたものの、サイズは13MBほどになりました。

pdfファイルをdjvuファイル化するには、他にpdf2djvuを使う方法もありますが、こちらはファイルサイズの低下があまり大きくないので見送りました。

pdf2djvuではpdfファイルのしおりが引き継がれますが、djvudigitalではしおりが引き継がれません。UbuntuではdjvusmoothというGUIでしおりが編集出来るソフトがあるのですが、macportsにはこれがなく、自分でビルドすることも出来なかったので別の方法を探していました。

結果的に、djvulibreのコマンドラインツール群に含まれているdjvusedを使えばしおりを付け加えることが出来ました。具体的には、例えばbookmarks.txtというテキストファイルに以下の形式でしおりの内容を保存しておきます。

(bookmarks
("Title" "#1")
("My Chapter 1" "#5"
("Sub Chapter 1" "#5")
("Sub Chapter 2" "#15"))
)

次にターミナルで

djvused file.djvu -e 'set-outline bookmarks.txt' -s
と打てば、file.djvuというdjvuファイルにしおりが追加されます。しおりは元のファイルのものを上書きしてしまうので注意が必要です。ファイルからしおりを抜き出すには
djvused file.djvu -e print-outline file.djvu > output.txt
とします。これでfile.djvuのしおりがoutput.txtというテキストファイルに書き出されます。

他にも、djvuファイルの特定のページを削除したければdjvmコマンドを使って
djvm -d file.djvu 1
のように、djvm -d [filename] [pagenumber]のような記述をすればよいようです。

2013年1月25日金曜日

Lebesgue積分と線形位相空間のお勉強

Lebesgue積分論について長らく勉強していますが、Fubiniの定理、Lebesgueの微分定理、変数変換公式についてある程度勉強ノートがまとまったので、恥をかくのを承知でここに晒しておきます。
数学の素人のノートなので内容は無保証です。変数変換公式については和書であまり見かけないので、頑張って書いたつもりです。

基本的には柴田良弘氏の「ルベーグ積分論」を読む際に、自分で理解し辛い部分を補って、文面をなぞるだけで証明の論理は理解出来るようにすることを目的としています。そのため原著よりもかなりクドくなっています。また章立てから文章までほぼ丸パクリです。ところどころ書くのが面倒になって放置しているところがありますので、柴田氏の本を購入して、理解を補うような形で使用して頂けるのではないでしょうか。

注意点としては、無限大についての演算は伊藤清三氏の本を基準としたため、拡張された実数に値を取る可測関数の積を実数値可測関数列の極限として定義していることや、ほとんど至るところ等しい可測関数に対して同値関係を入れて同一視することをしていないため、Fubiniの定理の証明や見た目が普通の本とかなり違うと思います。これは個人的に同一視無しで一度証明してみたかっただけなので、多くの人に取っては弊害にしかならないと思います。変数変換公式については、Fubiniの定理を用いない形で証明しています。もう少しシンプルになりそうな気がしていますが、疲れたのでそのままにしています。

2013/03/01:追記 ノートをアップデート。Trevesの超関数の本の第5節までの勉強ノートを追加。

2013/03/23:追記 ノートをアップデートに伴い、旧版の公開を取りやめました。
新しいページはこちら

2014/05/11:追記 ノートの最新版は,ラベルの「勉強ノート」をクリックして投稿を表示してみてください.