最強の数学文書システムを作りたい

数学の文書を書いてWebで公開したい時にはどうするのが良いでしょうか。私がこれまでにやってきたのは、

です。

しかし、PDFという形式はあまりWebには適しません。一方、Markdownでは数学の文書を書くうえで足りないものが多すぎます(定理環境や相互参照など)。

LaTeXは数学の文書を書くための語彙が豊富なので、LaTeXで原稿を書いて何らかの方法でHTMLに変換できると良さそうです。そのためのシステムを作りたいです。

続きを読む

TwoSumの証明に2週間かかった

前に「浮動小数点数小話」という同人誌を出しましたが、私としては浮動小数点数についてもっとちゃんとした本をいずれ出したいと思っています。執筆に着手するのは早い方が良いので、浮動小数点数についてのまとめノートみたいものを書き始めています。

続きを読む

技術書典16の振り返り

技術書典16で「だめぽラボ」としてサークル参加しました。振り返って色々書きます。

当日来てくださった方、オンラインで購入してくださった方、会場で差し入れしてくださった先輩と「趣味はデバッグ……」のお二人、新刊の表紙を描いてくださった610氏、そして小物の用意や売り子を手伝ってくれた妻に感謝します。

関連記事:

続きを読む

やりたいことリスト(2024年6月)

相変わらずやりたいことに対して時間が足りません。執筆とOSS開発で食っていきたい人生だった。

プログラミング

作りたいものがたくさんあります。

LunarML

TextIO.StreamIO/BinIO.StreamIO を真面目にやったら出力コードが肥大化しました。不要コード削除などの最適化を頑張ったところマシにはなりましたが、まだ若干不満があります。

しかし、そろそろバージョン0.2をリリースした方が良いかもしれません。

新しいバックエンドを追加するアイディアは色々あります。ネイティブコード、WasmGC、PHPなど。

周辺環境の整備もやっていきたいです。パッケージマネージャー、ビルドシステム、ライブラリーなど。

ClutTeX

Standard MLに移植するぞと息巻いていましたが、最近はあまり手を動かせていません。

数学文書システム

LaTeXをいい感じに解釈してHTMLとかを生成するやつを作りたいです。まあこれはLaTeXMLに乗っかるのでも良いかもしれません。Perlよくわからんけど。

その他

libcを自作したい欲求が若干あります。C23のサポートとか、マイナーな浮動小数点型のサポートとか。時間がないのでやらないけど。

執筆

執筆したいものもたくさんあります。

浮動小数点数関連

次の同人誌は「浮動小数点数小話」を発展させて、もっと体系的な本を書きたいです。少しずつ書き始めた方が良さそうです。

初等解析学コンテンツ

三角関数とかの数学関数の計算法をやるコンテンツを書きたいです。前にやった「週刊 代数的実数を作る」の初等解析版みたいな感じを構想しています。

作ってわかるTeX言語

TeXの展開・実行(代入)の部分を再実装することで理解するコンテンツを書きたいです。

前に書いた TeXの字句解析器の動作について はそのプロトタイプです。

その他

もうちょっと前は「数学好きのためのHaskell入門」とか「構成的代数と多項式の因数分解の話を絡めた何か」を書きたい、みたいなことを言っていた気がします。これらもまだ実現していません。


前に書いたように、執筆活動やOSS開発で月10万円くらい売り上げることができれば、労働(Pythonコードのお世話)の時間を削ってそういう活動の時間を増やせそうです。しかし、GitHub Sponsorは今の所0で、同人誌の売り上げもたかが知れています(直近のイベントの計算はちゃんとしてないけど……)。Webサイトの広告はクソまみれな上に私のレベルではほとんどお金になりません。なかなか難しいです。

この記事は30分で書きました。

LaTeXでPDF/XやPDF/Aを出力するメモ

LaTeXで書いた文書は普通はPDFとして閲覧・配布すると思います。このPDFですが、用途によってはPDF/XやPDF/Aなどの標準化されたサブセットにしたいかもしれません。

よくあるやり方は、LaTeXで生成したPDFをAdobe等の製品を使ってPDF/XやPDF/Aに変換する方法です。しかし、ここではpdfxというLaTeXパッケージを使ってPDF/XやPDF/Aを生成する方法をやってみます。

この話題については既存の記事もあるので、それも参考にしてください。

最近のLaTeXでは標準の機能でPDFメタデータを埋め込めるやつもあるようですが、ここでは従来の(?)pdfxパッケージを使います。

続きを読む

プログラミングではたまにエスパー力が必要になることがある

プログラミングをやっていると、たまにエスパー力が必要になることがあります。つまり、不可解な現象に遭遇し、少ない手がかりで問題を解決しなければならない状況です。

私はLunarMLという言語処理系を趣味で作っているのですが、今回はそれの開発中に遭遇した出来事を取り上げます。

続きを読む