Vlrfsasm講習/数式

構文

数式の記述には、拡張記法の[;]による関数表記を使います。t以外の関数は、多重に適用できます。

変換

数式の説明に入る前に、全体を関数mの引数にすることを覚えておいてください。

本変換器の内部では、数式の構造を表すため、バイナリデータを用いています。Unicodeの文字として正当な値である保証は全くありません。その上、出力時にUTF-8への変換を行うため、意味のわからないデータになってしまいます。これがブラウザに悪影響をもたらす可能性もあるので、注意してくだざい。

この関数を通すと、内部表現はsvgに変換されます。なお、単純な文字列は、内部表現として扱うことができます。つまり、内部表現と文字列を並べたものもまた内部表現です。

COPIED!
  1. [m;A=1]

A=1

フォント

数式中のアルファベットは、基本的に斜体で表示されます。

しかしながら、斜体は変数を意味するため、関数を表記したいときには不向きです。sinxと書いてあっても読めないことはないでしょうが、立体で表示したほうがよいです。

そこで、関数tを定義してあります。これは、数式内のみで使える関数で、引数は1つです。引数を立体にして表示する効果があります。

[m;sinx=1]sinx=1
[m;[t;sin]x=1]sinx=1

関数tの範囲外であるxは、斜体のまま表示されています。

なお、この関数の実装はかなり簡易なものなので、位置のズレなどが起こるかもしれません。

拡張記法

拡張記法にはさまざまな関数がありましたが、数式内で使用できる関数は限られています。本章で解説する数式専用関数と、aのみです。その他の関数はHTMLの要素を用いており、svg内にHTMLを埋め込むのは難しいため、対応していません。

上下付き線

上付き線

上付き線は、mo関数を用いて表示します。数式外における関数oと全く同じ使い方です。引数を1つ取り、上に引数と同じ幅の線を描画します。

複素の共役、統計の平均、論理の否定などに使われます。以下のように、複数回適用することもできます。

複素数の性質
[m;[mo;[mo;w]]=w]

w=w

下付き線

下付き線は、muを用いて表示します。moとほぼ同じなので、説明や例は省略します。

なお、この関数は関数uに対応するものがないと気になるという理由で作られました。作者は数学や物理の式において、一度も下付き線を使ったことがありません。

根号

平方根

平方根は、sを用いて表示します。引数は1つで、根号の中身を指定します。

[m;[s;2][a;.][s;3]=[s;6]]23=6

n乗根

平方根だけでなく、立方根やそれ以上も表示することができます。関数はrです。引数は2つあり、第一引数が基数、第二引数が指数です。

[m;[r;8;3]=2]83=2

分数

通常サイズ

分数は、関数fを用いて表します。引数は2つで、第一引数が分子、第二引数が分母になります。日本語で「A分のB」などという順とは逆なので、気をつけましょう。なお、横線の長さは、分母と分子の幅のうち大きいものを基準に、さらに微妙に長くしているので、分数を重ねても区別することができます。

[m;[f;2;5]=0.4]25=0.4

小書き

分数は、2段重ねになるのに加え、横線とその上下の空白も含むので、高さを取りがちです。文章中で使うような場合には、あまり好ましくありません。

そこで、分子や分母のサイズを縮めて表示する関数fsも用意してあります。引数はfと同様です。

[m;[fs;2;5]=0.4]25=0.4

周辺付き文字

「周辺付き文字」というのは、作者の造語です。x22や、an+1n+1のようなものを指しています。

位置

周辺付き文字には、多種多様な用法があります。しかし、よほど中央の文字が大きいのでなければ、位置をある程度分類することができます。

以下に、それぞれの位置に対する番号を示します。一般的にどう呼ばれているのかはわかりません。また、用途はあくまで一例です。

周辺付き文字の位置番号
番号位置用途
0O2−イオンの価数、積分の終点
1x3冪乗の指数
2Π総和や総乗の終点
3A3
4Na23原子量
5Cl17陽子の数、組み合わせ
6B6
7Σ1≤k≤10総和や総乗の範囲、limit
8log8x数列の添字、対数の基数
9Ck組み合わせ

単独

さて、周辺付き文字を1つ付けたいとき、関数名は位置番号の1字です。Vlrfsasmの句の規則を覚えている人には、違和感があるかもしれません。実は、内部で接頭辞hx.を付けて実行しているので、他の関数や数値リテラルとの衝突は起こらないのです。

第一引数に中央の文字、第二引数に周辺の文字を指定します。なお、「文字」などといっていますが、1文字でなくても、また以下のように分数などでも構いません。

[m;[1;x;[f;1;2]]=[s;x]]x12=x

複数

1つの文字に対し、複数の文字を周辺に付けることもできます。ただし、内部表現の制約から、4つまでです。

周辺付き文字の数関数名引数の個数
2Z4
3D5
4V6

ちなみに、作者は定義時にドイツ語の勉強をしていました。英語やラテン語では衝突を起こしたという事情もあります。

さて、これらの関数の第一引数は、中央の文字です。そして、第二引数には位置番号の列を指定します。第三引数以降では、第二引数の順に周辺付き文字を与えます。

[m;[Z;C;59;n;k]]Cnk

この例は少し変に見えますが、左右で高さを揃えるのはかなり面倒なので、暇な方がやってくださることを期待します。