2014年5月28日水曜日

OS X MavericksのXQuartzで日本語入力

結構多くの方が,XQuartzの日本語入力関係で検索してこられているようなので,MavericksのXQuartzで日本語入力を可能にする手順を簡単に報告しておきます.

私もMavericksにアップグレードしたときに,これまで日本語入力出来ていたものが出来なくなったのですがしばらく放置していました.web上でXQuartzとMacUIMの再インストールを行うと再び日本語入力が可能になるという情報を見かけたので試したところ,実際に日本語入力可能になりました.webでは上書きインストールでOKということでしたが,私は一度インストールしたファイル群を一旦消去しました.

色々な手順を混ぜながら作業を行ってしまったため,必要最小限の情報は何なのかがちょっとよくわかっていません.

おそらくXQuartzとMacUIMを再インストールしたあとは,以前に紹介したMattintosh noteさんのXQuartzで日本語入力(MacUIM Mozc)の手順を辿ればよいと思います.

私はこの作業の後で日本語入力が出来なかったため,あっきぃ日誌さんのmikutter Advent Calendar 2013 Day2の記事のMacUIMに関する記述を参考にごにょごにょしましたが,やはり日本語入力出来ませんでした.

しかし「システム環境設定」のMacUIMにおける「一般」タブのフォント部分がHelveticaになっていたので,日本語フォント選択しとかなきゃダメなんじゃね?と思いヒラギノフォントを選択したところ,日本語入力が可能になりました.

ですので,後半のごにょごにょ部分は必要なかった可能性があります.参考までに.

2014年5月24日土曜日

可測関数と無限大

現在Lebesgue積分論と関数解析を勉強中です.
多くのLebesgue積分の教科書で関数値に無限大を取ることを許して理論を展開していますが,勉強を進めるにつれてその優位性がどこにあるのかわからなくなってきました.

最初は特異点のある関数,例えば$x=0$で発散する$f(x)=1/x^2$といった関数を$\mathbb{R}$全体で定義された関数として扱うことが出来るようにするのが目的かと思っていたのですが,そうすると$f(x)=1/x$などはそもそも$x=0$で値を確定出来ないので無限大を許容するよりも$x=0$では例えば$f(x)=0$とするなど特異点での値を無理矢理定義し直した関数を考えればよいような気もします.

実際可積分な関数を扱うようになると,測度を変えない場合は測度零の集合上での関数値を変更しても積分値に影響がないため,上記のような特異な点の数が少ない場合は特異な点での値を修正して有限値関数に置き換えてやればよいことになり,関数に無限大値を許す必要性が無くなってくるように思います.

また無限大を許すことで定理や命題の証明が変に複雑になっています.

現時点での理解では,関数値に無限大を許すことの利点は可測関数の極限関数や上極限,下極限が自動的に可測関数になることが保証されることくらいしか思いつきません.
あまりきちんと考えていないのですが,これってそんなに大きな利点なのかな?と思っています.

これまでに見た教科書では関数値に無限大を許容したほうが都合がいいとは書いてあるものの,どのように都合が良いのかを明記してある本がありませんでした.誰か説明してくんないかな.

2014年5月22日木曜日

mdframed.styとpicins.styの競合

LaTeXの話です.
定理環境の装飾にmdframed.styを用いていますが,Lebesgue積分のノートだけいつの頃からかフレームがページを跨いで分割されなくなっていました.重い腰をようやく上げて何が原因になっているのか探っていたところ,図の回り込みに使うpicins.styを読み込んでいると現象が起こることがわかりました.

picins.styは定理環境の中でも文章を図に回り込ませられる希少なパッケージなので代替策が見つからずどうしようかと考えています.emathのemathMw.styは色々な場面で文章を図に回り込ませることの出来るパッケージですが,環境前後の空きが変なのと,自前のコマンド名と競合するコマンドが大量に出てくるのであまり使いたくないなあといったところです.

追記:2016/04/19 mdframedとpicinsの競合の問題は、mdframedのマニュアルにばっちり載っていました。マニュアルを読もう。

2014年5月20日火曜日

emacs内でTeX文書の作成からpdf閲覧まで行う

TeX WikiのEmacsに関する記述を見ていると,sheepheadさんのblog記事:Emacs上のPDFでisearch,occur,imenuとかなんでもしてしまうpdf-toolsの紹介が紹介されていました.Emacs23を導入したときに,EmacsでPDFファイルを表示するDocViewを試したことがありましたが,使い勝手が悪かったためすぐに使わなくなりました.

まずdoc-view-modeの基本的な操作法をまとめておきます.
キーコマンド機能
n'doc-view-next-page次のページ
p'doc-view-previous-page前のページ
C-n'doc-view-next-line-or-next-page1行下方へスクロール
C-p'doc-view-previous-line-or-previous-page1行上方へスクロール
SPACE'doc-view-scroll-up-or-next-page下方スクロールまたは次のページ
DEL'doc-view-scroll-down-or-previous-page上方スクロールまたは前のページ
k'doc-view-kill-proc-and-bufferプロセスを終了しバッファを閉じる
g'revert-bufferバッファを閉じる
+'doc-view-enlarge拡大
-'doc-view-shrink縮小
カーソルキー -上下左右方向へスクロール
M-g M-g 'doc-view-goto-page指定したページへ移動
M->'doc-view-first-page最初のページへ移動
M-<'doc-view-last-page最後のページへ移動

上述の記事ではEmacsのdoc-view-modeの使い勝手を良くするEmacs拡張アプリであるpdf-toolsを紹介していたので,早速試してみました.環境はMac OS X MavericksでEmacs 24.4.50を使用しています.

pdf-toolsを検索してみたのですが,検索上位に現れるGitHubのpolitza/pdf-toolsはLinux環境を前提としているようで,そのままソースをコンパイルしてみるとエラーが出ます.ソースコードを少し書き直すとMacでも使えたという情報も見かけたものの,ソースコードをいじる技術力がないので,誰かMacに対応したものを作っていないか他力本願で探してみるとGitHubにありました.

axot/pdf-toolsからzipファイルをダウンロードして展開し,ソースをコンパイルしてみるとすんなり通りました.するとソースを展開したフォルダにpdf-tools-0.20.tarというファイルが出来たので,Emacs上で
M-x package-install-file RET pdf-tools-0.20.tar RET
としてインストールしました.これでdoc-view-mode上で動作する色々なマイナーモードが使用可能になります.

M-x pdf-tools-helpで各マイナーモードや用意されている関数の説明を見ることができます.


EmacsからC-x, C-fでpdfファイルを選択して開き
  • pdf-isearch-minor-mode
  • pdf-sync-minor-mode
  • pdf-link-minor-mode
を試しました.まずdoc-view-modeはimagemagickのconvertコマンドを使ってpdfファイルをpngファイルに変換してEmacsのウィンドウ内に表示します.数ページのpdfファイルであればその変換にかかる時間が気にならないと思いますが,私は普段から数百ページのファイルを扱うことが多いため変換に時間が掛かり,LaTeXファイルのタイプセットの度にpdfファイルを再読み込みして変換をしなければならないため,この時点ですでにげんなりしてしまいます.画像ファイルの解像度が粗いのも気になりました.

pdf-toolsで今回試したマイナーモードはいずれもよく働きます.
isearchでは,検索した語句がハイライトされました.

pdf-links-minor-modeをonにすると,pdfのhyperlinkでジャンプ出来るようになりました.またpdf-sync-minor-modeでは,pdfのダブルクリックした部分に該当するTeXソースファイルの内容が表示されることを確認できます.
逆にソースファイルからpdfへジャンプする機能については,helpを見ると設定のための関数が用意されているので出来るとは思いますがそこまでは試していません.

ページの遷移がコマンドで済むことやisearchが出来ることは便利なのですが,ページ数の多いファイルをタイプセットする毎にpdfファイルを読み直して画像ファイルへ変換するという手間がかかることを考えるとあまり実用的ではないかなぁ.

2014年5月2日金曜日

tikzを用いた部,章,節のカスタマイズ

TeX Stack Exchangeのサイトを眺めていて,tikzを使った各種見出しのデザイン変更の仕方でとても格好の良いものが幾つかあったため,リンクをまとめてみます.

tikzを使えばこんなことも出来るのかと感心させられました.

2014年5月1日木曜日

mdframedを用いた定理環境の修飾(platex+dvipdfmx, tikz)

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

以前にplatexではmdframedでtikzを使った描画はうまくいかない風なことを書きましたが,あれはウソでした。すみません。

mdframedパッケージを読み込む前に,graphicxパッケージにdvipdfmxオプションを付けて読み込んでおけば使えました。

前回記事にした定理環境では,定理の番号に章番号や節番号を付けて出力したり参照したりするときに不便なため,書き直しをしました。次のように記述しておけば,platex+dvipdfmxできちんとした出力が得られます。
\documentclass[a4paper,10pt,papersize]{jsarticle}
\usepackage{amsmath,amssymb,mathrsfs}
\usepackage{etoolbox}
\usepackage[svgnames]{xcolor}
\usepackage[dvipdfmx]{graphicx}
\usepackage[framemethod=tikz]{mdframed}

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


\begin{document}

\section{Riemann積分}
\begin{theo}[Riemann積分の線型性]
\label{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}

定理\,\ref{theo:riemann}は凄い!

\end{document}


これを使って数学ノートのプリアンプルを書き換えました。現在は定理環境が次のような体裁になっています。