忘れたときに備えた記録

トップ 最新 追記
2005|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|11|12|
2009|01|02|03|04|05|06|10|12|
2010|06|07|08|12|
2011|07|09|
2012|09|11|
2013|02|03|09|
2015|10|11|
2016|01|08|11|
2017|02|08|10|
2018|11|

2008-03-09(Sunday)

primeについて

掲示板の方で、

「エープライム」を出力するのにTeXでは普通$a'$と書いてしまいますが、これじゃ駄目なんですね

という報告を受けました。

駄目なのはライブラリが悪いせいで、バグ(というか、仕様ミス)であると認識しています。 後日修正しますので、当面は$a'$と書いていて下さい。見栄えが悪くなってしまいますが、修正後に直ります。

ただ、いまちょっと別の要件で忙しいので、すぐには手をつけられません。修正版の公開は来週末(15日)以降になる予定です。

以下、詳しい(?)解説です。 まずは、こちらの図をご覧下さい。

primeのバグ

上は、HikiやtDiaryのMathWikiスタイルで$a'$と書いた場合で、下は$a\prime$と書いた場合です。

本当なら、$a'$と書いたときに下の式が出力されるべきなのですが、そうなっていません。

ちなみに、LaTeXで$a'a\prime a^\prime$と書くと、

latexでのprime となります。真ん中の出力で、\prime命令は右上付ではないプライム記号であると分かります。 これを右上付きにすると、右側の出力になって、これは左側の$a'$の出力と同じです(錯視的な効果が生じて右のプライムの方が大きくて上にあるように見えますが、まったく同じ表示です)。

以上の例から、現在のMathMLライブラリには次の2点のバグがあることになります。

  • $a'$とするとaの右上にプライムではなくアポストロフィが出る
  • \prime 命令が、文字と同じサイズのプライムではなく、$^\prime$の場合に出るべきサイズで出てしまう
Tags: MathML

2008-03-10(Monday)

Twitterはじめていました

過去完了形なのは、なぜかアカウントだけは取っていたからです。

GoogleReaderでtwitterを追いかけていたのですが、1時間に1回Googleがチェックしたときにまとめて更新されるせいで、時系列がしょっちゅうおかしくなっていました。

で、Twitter専用のクライアントで読んだら良いんじゃね?とか思ったら、これ、自分のアカウントのfollowリストに追加しないと読めないんですね。 それで、今まで見ていた人たちの分をfollowリストに入れてみたら、followし返してもらってしまったので、じゃあ、何か書いてみようかと。

今週末締め切りの論文で忙しいのであまり大したことは書けないでしょうけど、良かったら見てやってください。

http://twitter.com/hirakuro/


2008-03-23(Sunday)

モジュールメソッドをクラスに継承させる

モジュールの特異メソッドをinclude先で再定義する - ’(rubikitch wanna be (a . lisper))を読んだのですが、Forwardableのようにクラスをextendしてこんな風にするのはどうでしょうか?

#!/usr/bin/ruby
module Mod
   module Methods
      def hoge
         puts "HOGE"
      end
   end

   extend Methods

   def self.included(klass)
      klass.extend(Methods)
   end
end

class C
   include Mod
end

Mod.hoge
C.hoge

実行するとこんな感じです。

~$ ruby -v test.rb
ruby 1.8.6 (2007-06-07 patchlevel 36) [i486-linux]
HOGE
HOGE

要は

  1. クラスに継承させたいメソッドをモジュール内モジュールに分離する
  2. モジュール自身も内モジュールをextendしておく
  3. クラスがincludeしたら、自動的にextendするようにincludedを定義しておく

といっか具合です。

Tags: Ruby

primeについて その2

先々週の続きです。2週間近く空いてしまいました…

まず、$\prime$でデカいプライム記号が表示されなかったと言う話ですが、あれは僕の環境でその時MathML用フォントが入っていないのが原因で、フォントを入れたらちゃんとデカいプライムが表示されました(いきなり直っていたのでびっくりした)。

さて。

改めていろいろなプライムをMathMLで表示してみました。

primes

これは、MathMLを直接書いて表示させたもので、ソースはこんな感じです。

  <mi>a</mi>
  <mo>'</mo>

  <mi>a</mi>
  <mi>'</mi>

  <mi>a</mi>
  <mo mathvariant="italic">'</mo>

  <mi>a</mi>
  <mo>&prime;</mo>

  <mi>a</mi>
  <mi>&prime;</mi>

  <msup>
    <mi>a</mi>
    <mo>&prime;</mo>
  </msup>

  <mi>a</mi>
  <msup>
    <mo></mo>
    <mo>&prime;</mo>
  </msup>

表示で見たときに一番プライムっぽいのが右の2つですが、MathML的には変な気もします。でもLaTeXでも ' はsuperscription扱いらしいので($$A^a'$$をLaTeXに通したら"Double superscript"のエラーが出ると始めて知りました)これで良いのかも?

次点で右から2、3番目が良いかもしれません。見栄えもそこそこプライムっぽいし、MathMLでも3番目なんかは「演算子をitalicで表示」と一番それっぽいように思えます。

ところが。上の画像はUbuntuでの表示を撮ったものなんですが、同じMathMLをWindowsのFirefox+MathMLフォントで表示したところ…

primes on winXP

なぜそこでアポストロフィが出るのか!しかも変な隙間までできているし

表示だけはそれっぽい2番目のは、MathMLとして見たときにプライムを識別子として記述しちゃっているので駄目です。

というわけで、$'$は

 <msup>
    <mi>a</mi>
    <mo>&prime;</mo>
 </msup>

に変換してみることにしました。これから作業に着手です。

MathMLライブラリ0.8.1を公開しました

今気がついたのですが、0.8.0に更新したときにその事をここに書き忘れていました(汗

今更ですが、まずは0.8.0への更新分です

  • SimpleLaTeX.new(:delimiter=>"$")としたときに正しく動作しなかったバグを修正
  • パスの有無などで2回requireされた場合に無限ループするバグを修正
  • REXMLを使用せずEimXML必須にした
  • \bm命令を追加(t-nissieさんにパッチを提供していただきました)
  • その他
    • Rakefileの導入
    • ディレクトリ構成の変更
    • gem化に伴うコメントの英語化
    • などなど

次に、0.8.1への更新分です

  • $a'$を、$a^\prime$とほぼ同じに変換するようにした($a''$も$a^{\prime\prime}$とほぼ同じになる)
  • その他、雑多な修正

ほぼ同じというのは、$a^{\prime\prime}$は

<msup>
 <mi>a</mi>
 <mrow>
  <mo>&prime;</mo>
  <mo>&prime;</mo>
 </mrow>
</msup>

になるのですが、$a'$の方は

<msup>
 <mi>a</mi>
 <mo>&prime;&prime;</mo>
</msup></math>

になるようにしているからです。

Tags: 更新

お詫び

実は今回の$a''$の件は、去年11月の頭にt-nissieさんから報告を頂いていました。

しかし、ちょうどその頃、セミナーでの発表の準備やそれに続いて始めたBayesフィルタの開発があって、すっかり忘れてしまっていたのです(RTMのタスクにも入れ忘れていた)。

長い間放置してしまい、本当に済みませんでした。お恥ずかしい限りです。


2008-03-31(Monday)

視覚の境界と外

るびまの最新号が公開されたので読んでいたのですが、Rubyist Magazine - Rubyist Hotlinks 【第 21 回】 原信一郎さん経由で頭痛が痛い 原信一郎という文章の

黒は色であって、ものに光が当たってない状態のことだ。私の視野が欠けているのは、その部分の情報処理をする部位が働かない、ということで、黒く見えることとは本質的に違う。そもそも普段君は自分の後方の景色を黒いと感じているのかい

という記述を読みました。それでふと気になったのですが、視界とその外側との境界や、視界の外側って僕達には(というか僕には)どういう風に見えてるんでしょう?

今、僕の目の前には19インチの液晶ディスプレイがあって、入力中のこの文章が見えています。点滅しているカーソルを視界の中心に捉えていて、その周囲2、3文字分くらいは目を動かさなくてもどんな文字か見えていますが、その外側の文字は見えてはいるんだけど何の文字か判別できません。かといって、ボヤけているわけでもないようです。

そういう、見えているけど見えづらいという部分が視界の外側に向かって広がっていて、それとは別に、真横や真後ろは明らかに見えていないわけです。すると、見えている部分と見えていない部分の境界というのがあるはずなんですが、見えづらいせいでどうなっているのか全く分かりません。

とりあえずこの視界の境界部分をきちんと見る事が出来れば、視界の外側が本当はどういう風に「見えている」のかも分かるような気がするんですが、何かの訓練で「見えづらくない」範囲を広げることって出来るのかなぁと、ふと思ったわけです。

ええと、それだけです。オチとかありません。

Tags: 雑談