2013/05/26

blogger で latex な記事を書く方法

一つ前の記事で数式をバリバリ使った記事を書きましたが、
やっぱり数式を書くならlatexを使いたい。

ということで、bloggerでlatexっぽく表示する方法を導入します。

調べたらまとめてくださっているページがありました。
http://ichiro-maruta.blogspot.jp/2012/01/bloggermathjaxtex.html

テンプレートを汚したくないときは、
各記事のhtmlに仕込んでもおそらく動くと思われます。

これの通りにテンプレートにコードを仕込んだら、
$x$で$x$みたいにインライン表示
$$x$$で$$x$$行が別れます。
このへんは本家latexと同じ。

あと、eqnarrayも使えます

例えば、
\begin{eqnarray*}
ax^2 + 2ax + a & = & a(x^2 + 2x + 1) \\
  & = & a(x + 1)^2
\end{eqnarray*}

*blogger latexで検索するとブラウザに拡張機能を入れる奴も出てきますが多分動きません。
**この手の話って1年以上経過すると信ぴょう性がかなり落ちる気がします。

高校数学に挑んだら惨敗した件

高校生の数学の問題を解く機会があって、解いてみたのですが、
結構難しかったので、紹介します。

$4^{n+1} + 5^{2n-1}$が21で割り切れることを示せ。

$$
\begin{eqnarray*}
4^{n+1} + 5^{2n-1}
&= &16 \times 4^{n-1} + 5 \times 5^{2(n-1)} \\
&= &16 \times 4^{n-1} + 5 \times 25^{n-1} \\
&= & (21 - 5) \times 4^{n-1} + 5 \times (21 + 4)^{n-1} \cdots (1) \\
\end{eqnarray*}
$$
ここで$(1)$を21で割ることを考えます。
前半部分($4^{n-1}$の方)を21で割ると余りは$- 5 \times 4^{n-1}$となります。
後半部分は$ (21 + 4)^{n-1}$を展開すると最後の$4^{n-1}$以外はすべて21の倍数になるので、
結局後半部分の余りは$5 \times 4^{n-1}$となります。

なので、前半部分の余り$+$後半部分の余り
$= - 5 \times 4^{n-1} + - 5 \times 4^{n-1} = 0 $
Q.E.D

-----

これ初見で解ける高校生いるのかな…。
僕は初見どころか解説読んでもしばらく理解出来ませんでした。
(なぜ後半部分の余りが$- 5 \times 4^{n-1}$になるのか)




2013/04/26

Eclipse + Processing で PGraphicsクラスを使う

Processing -- ver2.8b
Eclipse -- Juno

ProcessingをEclipseで書いていて、PGraphicsが使いたくなった。
しかし、公式リファレンス通り


import processing.core.PApplet;
import processing.core.PGraphics;

public class PGraphicsTest extends PApplet{

PGraphics pg;

public void setup() {
size(200, 200);
pg = createGraphics(100, 100);
}

public void draw() {
pg.beginDraw();
pg.background(102);
pg.stroke(255);
pg.line(pg.width*0.5F, pg.height*0.5F, mouseX, mouseY);
pg.endDraw();
image(pg, 50, 50);
}
}

と書くと、

Exception in thread "Animation Thread" java.lang.NoSuchMethodError: tracer.PGraphicsTest.createGraphics(II)Lprocessing/core/PGraphics;
at tracer.PGraphicsTest.setup(PGraphicsTest.java:12)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


とか出て死ぬ。
いろいろ試した結果、
size関数でレンダラを明示(デフォルトのはJAVA2Dという名前らしい)
creategraphicsも同じレンダラを指定すると動くみたい。

つまりこういうこと

import processing.core.PApplet;
import processing.core.PGraphics;

public class PGraphicsTest extends PApplet{

PGraphics pg;

public void setup() {
size(200, 200, JAVA2D);
pg = createGraphics(100, 100, JAVA2D);
}

public void draw() {
pg.beginDraw();
pg.background(102);
pg.stroke(255);
pg.line(pg.width*0.5F, pg.height*0.5F, mouseX, mouseY);
pg.endDraw();
image(pg, 50, 50);
}
}

2013/03/29

『トビラ』


最初の一歩が一番大変。
『トビラ』

-----ここから-----

目の前には古びたトビラ。
君はそっと、手を掛ける。
かすかに見える赤い光は、
夜明けかそれとも夕焼けか。

目の前にある古びたトビラ、
君は笑って、開け放つ。
かすかに見えた赤い光は、
遠い向こうのどこかへ消えた。

トビラの向こうに続く道。
ただひたすらに続く道。
光はどこにも無いというのに
それでも君はにこやかだった。

トビラの向こうへ続く道へと
一歩踏み出し、振り返る。
「ごめんごめん忘れていたよ」
君は僕へと問いかける

「道の果てには光があると、
僕は信じているけれど。
保障はしない。強制もしない。」
消えた笑顔と差し出された手。

――さあ、君はどうするの?

伸びゆく道が行き着く先など
到底想像できないが、
僕にもかすかに見えたんだ。
遠く輝く一等星が。

君が静かに伸ばす手を、
震えを抑えて握り締め、
無理やり足を突き出すと、
君はにっと笑ったね。

もう遠くに見える古びたトビラ。
きっと戻ることもない。
かすかな光にさらされた、
その向こう側は灰色だった。

2013/03/27

『街には今日もラブソング』


片思いすらしたことがない僕にとって、
この世は割と生きづらいです。

『街には今日もラブソング』


-----ここから----

街には今日もラブソング。
揃いも揃って歌いやがるから
今日も今日とて溢れだす。

街には今日もラブソング。
辛い、苦い、甘くて切ない
そんなの俺には関係ねぇ!

街には今日もラブソング。
ヒットチャートの上から下まで
みんな大好きJ-POP。

街には今日もラブソング。
流行りと聞いて聴いてるるものの
価値がわからぬ。終わってる?

街には今日もラブソング。
誰しもが持つ恋愛感情
それがわからぬ。終わってる?

街には今日もラブソング。
共感できる余地がなく
共感できる予定もない。

街には今日もラブソング。
今日も明日もラブソング。

2013/03/25

『duty』

だからこそ、僕らは幸福であるべきなのだろう。
『duty』

--ここから--


「市民、あなたは幸福ですか?」 白い髪の少女は問う。
「はい、私は幸福です!」 注射を持った大人が叫ぶ。

ここはそこまで狂っちゃいないが、
僕はあなたに問いかける。
「ねえ、あなたは幸福ですか?」

いい学校に行きたがったり、
限定のパンを欲しがってみたり。
いい会社に入りたがったり。
本が売れることを望んでみたり。

僕が今日買ったパンは、その日誰かが買えなかったパン。
僕が昨日買えなかったケーキは、もう誰かの胃袋の中。

ある一人の幸せが、他の誰かの不幸ならば。
幸せに生きるという事が、誰かを蹴落とすことならば。

これが最後、あなたに問いかける。
「ねえ、僕らは幸福ですか?」

--ここまで--

久しぶりの散文詩タグですが、
流行りに乗ったみたいで若干癪。

2013/03/17

コマンドプロンプトですべてのファイルに一括処理

コマンドプロンプトで、「あるディレクトリに含まれるファイル全て」に処理を行いたい場合、
for文が使えます。

書式としては、
for 変数 in (場所) do コマンド
となります

具体例として、動画・音楽の形式を変化するffmpegというコマンドを用いて、
あるディレクトリ内にあるflvファイルを全てwavに変換するという作業を考えます。
(ちなみにflvはニコニコ動画などの動画ファイル、wavは音声ファイルです。)

なおffmpegは
ffmpeg -i 入力ファイル 出力ファイル
とすることで、入力ファイルを出力ファイルの形式に変換出来ます。
(ちなみに、ffmpegは入力にワイルドカードを受け付けないので、
 一括処理をしようとするとfor文が必須になります。)

ディレクトリ構造が、
root
|-wavdir
|-flvdir
  |-a.flv
  |-b.flv

となっているとすると、
for %%i in (../flvdir/*.flv) do ffmpeg -i ../flvdir/%%~ni.flv ./%%~ni.wav
と入力し、wavdir内で、バッチファイルとして保存して実行すると、
ffmpeg -i ../flvdir/a.flv ./a.wav
ffmpeg -i ../flvdir/b.flv ./b.wav
というコマンドが順に実行され、
めでたくflvdir内の.flvで終わるファイルが全てwavに変換されwavdirに保存されます。

ここでのポイントは
1. for文で変化させる変数は%%で指定する(例では%%i)。
2. 場所の指定は相対パス。ワイルドカードの*が使用可能。
3.  変数の前に~nをつけるとファイル名の拡張子より前の部分が取得出来る。
  (例では変数名がiなので、その前に~nをつけて、%%~niとなっています)

また、forはバッチファイルとして実行しないとエラーが出るようです。