マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

それでも1SATySFiを作ってみた件

*「今日はきりたんぽの日!」
ZR「ですね」
*「ですね、じゃないでしょう!? 毎年恒例の1TeXネタは?」
ZR「恒例っていっても去年はなかったじゃん」
*「一応ツイッタァーに何かありますよ」
ZR「まあとにかく、1TeXに関してこれ以上ネタを見つけ出すのは無理がある」
*「エーッ! 1TeXがダメだとしても、世の中には“TeX以外”もあるでしょう。例えば“1SATySFi”とかを作れば?」
ZR「SATySFiには“catcodeの概念”がないから字句解析規則が変えられない。要するに想定された書式、現状では“本来のSATySFi言語”とMarkdown、それ以外を読み込めるようにするのは無理。まあ、将来に多段階計算の構想が発展すれば可能性はあるんだろうけど」
*「エーッ! 1SATySFiは作れないの!? きりたんぽの日のネタも作れないなんて、SATySFiはオワコン!!」

どうにかして1SATySFiを作ってみた

SATySFiをオワコンにしてしまうのは忍びないので、無理やり作ってみた

インストールは以下のようにする($LIBROOTはライブラリルート)。

  • 1satysfi.satyh$LIBROOT/dist/packages/
  • 1satysfi.satysfi-md$LIBROOT/dist/md/

……ん、md? そう、要するに「Markdownとして読み込ませる」という手段を使っている。

さっそく1SATySFi文書を作ってみる

1SATySFiのソースは、1TeXと同様に「文字コードを“1”の1進数で表したもの」を改行で区切って書く。

[hello.1saty]
    111111111111111111111111111111111111111111111111111111111111111111111111
    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    11111111111111111111111111111111111111111111
    11111111111111111111111111111111
    1111111111111111111111111111111111111111111111111
    11111111111111111111111111111111111111111111111111111111111111111111111111111111111
    11111111111111111111111111111111111111111111111111111111111111111
    111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    11111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111
    111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    111111111111111111111111111111111

ここで注意であるが、各行の先頭に空白文字4つを入れる必要がある。なぜかというと「結局Markdownだから」である。

もう一つ1TeXと異なる点として、1進数表記にする前の元のテキストは「出力する文字列そのもの」とする。SATySFi言語のコードではないことに注意。

文字コードの10(つまり1111111111)を入力すると出力において改行が起こる。

さっそく1SATySFi文書をコンパイルしてみる

Markdownとしてコンパイルするので--markdown 1satysfiというオプションが必要である。

satysfi --markdown 1satysfi hello.1saty

コンパイル結果は……。

f:id:zrbabbler:20191110231231p:plain
hello.1satyの組版結果

スバラシイ。

まとめ

*「アレレ? SATySFiのコードを1進数にするんじゃないの? このままだと『あらゆるSATySFi文書を“1”だけで表記する』ことになってないから全然ダメじゃん」 ZR「………………」