0の0乗

「0の0乗」については、数学をやっている人とそうじゃない人で割と認識に差がありそうだと思う。そこで、(まだ青二才の学生ではあるが)数学をやっている者の端くれとして思うことを書いておく。

まず、(たぶん)世間でよく言われている「0の0乗を1とすべき理由」と「0の0乗が不定となる理由」について述べ、それを踏まえて、数学をやる上での「それでも0の0乗を1とする理由」を述べる。 続きを読む

家のネットワーク環境を整えた話

最近、NASを買ったり無線LANルーターを新しくした。そこで、新しい機器の導入によって良くなったこととかを日記として書いておく。NASのレビューと無線LANルーターのレビューとVPNについてのあれこれとIPv6についてのあれこれが混ざっているが、日記なのでしょうがない。

この記事はチュートリアルとかではないので、「こういう環境でコレを導入して適切に設定したらうまくいった」とは書いても「適切な設定」の手順は書かない。

続きを読む

Keynoteのリモート操作

Keynoteで発表するとき、ずっとMacの前に立っているのもアレなので、リモコンで制御したい。

昔のMacにはApple Remote用の赤外線受光部があって、Keynoteを操作できた。しかし、今のMac(Mac miniは例外か)からはそういうのは消えて、Apple RemoteはApple TV専用みたいな感じになってしまった。

今はiPhoneやiPadのKeynoteアプリを使って遠隔操作するのが標準的な方法(?)のようだ。リモート操作だけではなくて、iPhoneの画面で発表者ノートとかも見れる。便利だ!

…と言いたいところだが、

  • iPhone/iPadを持っていない
  • iPadは持っているが、でかいので片手で持てない
  • 触感のないタッチパネルではなくて、物理的なボタンのついたリモコンが欲しい(リモコンの操作をするのに手元を見たくない)

という理由で、物理的なリモコンが使いたいという人もいるだろう。

そこで、赤外線受光部を搭載しないMacで、物理的なリモコンを使ってKeynoteを操作することを考えてみよう。
続きを読む

「脱背理法」のまやかしとウソ

「脱背理法」とは

わざわざここでは説明しない。もしこれを読んでいる貴方が「脱背理法」を知らないのであれば、その状態がきっと幸せなので、無理に知ろうとしない方が良い。

続きを読む

dvisvgmとSTIXフォント

以前、dvisvgmについてちょろっと書いた。その時は、dvisvgmでSVGファイルを生成する時に --no-fonts オプション(文字のアウトライン化をする)をつけないとフォントが正常に指定されないという結論だったわけだが、それではブラウザで表示した時に文字が選択できない。

そこで、dvisvgmで --no-fonts オプションを使わずに生成したSVGファイルで、文字が正常に表示されるような方法を考えてみよう。

続きを読む

LaTeXでPDF出力する際のTips その2

LaTeXでPDF出力する際のTips では、

  • PDFのメタデータの文字化けの解消方法
  • PDFのタイトルや作成者を \title, \author から自動的に設定する方法

を扱った。

今度は、PDFの目次(ブックマーク、しおりと呼ぶこともあるようだが、この記事では「目次」で通す)についてのTipsを扱う。

続きを読む

UT-mateの使い勝手を上げるChrome拡張を作った

以前、UT-mateの使い勝手を上げるGreasemonkeyスクリプトを書いたが、それをChrome拡張化してみた。

Greasemonkeyのuserscriptも chrome://extensions/ にドロップすればなんか勝手に拡張として扱ってくれるようなのだが、一般人にuserscriptをダウンロードさせて chrome://extensions/ を開かせてうんぬんさせるよりはChrome Web Storeで入手出来るChrome拡張の方が導入しやすいだろうということで、Chrome拡張化してみることにした。

このuserscriptではGreasemonkey特有の関数( GM_* )は使っていないので、拡張機能の作り方のContent Scriptsのページを読んで manifest.json を適当に書いてやってパッケージしてやればChrome拡張になる。

Chromeの機能でChrome拡張のパッケージ(.crx)を作れるようだが、Chrome Web Storeで配布する際はzipアーカイブをアップロードすれば向こうで適当に .crx を作ってくれるっぽい。

作ったChrome拡張(とかWebアプリ)をChrome Web Storeで初めて公開するには、Googleに5ドルのみかz…登録手数料を払う必要がある。まあ一回払えばいくらでも拡張機能やWebアプリを公開できるからそんなに高くない…と思ったけど20個の上限があった気がするぞ…。

そんなわけで作ったChrome拡張がこちら。

Chrome Web Storeではなんかすれば課金もできるみたいだけど、この程度のアレで課金して誰もダウンロードしてくれないよりは、無料でダウンロードしてもらって自分の承認欲求を満たした方が良いなあと思った。

ちなみに、Chrome拡張化の際にuserscript本体はいじる必要はなかったが、UT-mateのページが仕様変更していたみたいで、そのための修正は必要だった。

Firefoxの人は従来通りGreasemonkeyを使って Better_UT-mate.user.js をインストールすれば良い。

Safariの人はTampermonkeyとかいうのを使えば良さそう。Safariの拡張機能でもChrome拡張と同じようなことができる感じがするが、Appleに登録か何かしないといけないようなので面倒くさい。

TeXでファイルの更新日時を取得する

TeXでは \today で現在の日付を取得できる。\maketitle\date を省略すると現在の日付になる。

しかし、TeX文書の「内容」に関わる日付と言ったら、ファイルの更新日時ではないだろうか。タイトルのところにファイルの更新日時を(自動で)出す方法はあるか。

ググってみたら割と簡単に答えが出てきた。

pdfTeXだと \pdffilemoddate というプリミティブがあるらしい。例えば \pdffilemoddate{\jobname} と書くとコンパイル中のファイルの更新日時が D:20150829212230+09'00' というようなフォーマットで取得できるようだ。

LuaTeXだと \pdffilemoddate はないが、Luaを使えば同じようなことはできるだろう。まあ自分でLuaコードを書いて実装するのは面倒なので、既製品を使おう。

filemodというパッケージはpdfTeXとLuaTeXで使えて、ファイルの更新日時を取得するだけじゃなくて、\today と同じような読みやすいフォーマットにしてくれるようだ。例えば、ファイルのプリアンブルに

\usepackage{filemod}
\date{\Filemodtoday{\jobname}}

と書けばタイトルの日付がファイルの更新日時になる。

複数のファイルの中で最も新しい更新日時を使いたいときは、試してないけど \filemodNewest を使えば良さそう。

既に書いたように、filemodパッケージはpdfTeXかLuaTeXが必要で、pTeXXeTeXでは動かない。

【2016年12月12日 追記】ε-pTeX では \pdffilemoddate を含むいくつかの pdfTeX primitive が実装されているため、 filemod パッケージを使うことができる。参考:ε-pTeX について

Macのストレージを空けた (2)

関連:Macのストレージを空けた

またMacのSSDの空き容量が減ってきたので、なんとかする。

duコマンドでホームディレクトリ以下を検査して、容量を食っているやつをチェックする。

~/Library/Application Support/MobileSync/Backup/

20GBくらい。

こういうバックアップの類はなるべく消したくないタチなので、できれば外付けドライブとかに移したい。ググったらシンボリックリンクを貼れば良いというのが出てきたが、リンク先のドライブが接続されてない場合の挙動が心配である。

というわけで今回はパス。

~/Library/Developer/Xcode/

7.1GBくらい。

中でも、 iOS DeviceSupport というサブディレクトリが6.3GBほど食っているようである。

ググって調べたところ、新しいiOSデバイス、または新しいiOSの入ったデバイスを接続すると iOS DeviceSupport の中身が増殖するらしい。

$ rm -r 7.1.* 8.0.* 8.1.*

のようにして、最新のバージョン(8.4)以外を削除。

古いHaskell Platform

7.10.2を入れたので7.8.3には消えてもらう。手順は前の記事に書いた。