SATySFiは静的型検査の恩恵を受けられる組版処理システムである。
Ubuntu16.04を使っているのだが、SATySFiを使ってみようとして少し困ったので。ちなみにそれまでのOCaml経験はHello, Worldのみ、つまりコンパイラを入れたことがある以外はゼロ。むしろデファクトな環境構築法を知らないまま適当な環境を導入した分マイナスかも知れない。
先に結論から行くと、以下のようにすると上手く行った。シェルはfish-2.7。opamがfishにも対応していて少しうれしくなった。普段使う大抵のソフトウェアはfishに対応していないので。
$ sudo apt-get install opam $ opam init # 少し時間がかかる。configを弄るのはokした $ eval (opam config env) $ opam switch list ... # 確認のため $ opam switch 4.05.0 # 時間がかかる $ eval (opam config env) $ git clone https://github.com/gfngfn/SATySFi.git $ git submodule update -i $ opam pin add satysfi . $ opam install satysfi $ satysfi --version # 確認 SATySFi version 0.0.1
最初、出ないはずのシンタックスエラーに遭遇してわけがわからなくなっていた。opamのインストールから始めると上手く行ったので恐らく最初の環境構築時点で何かやらかしていたのだとは思うが、よくわからない。最初のopamのインストールは公式のinstallスクリプトをwgetしてシェルに流し込むやつでやったのだが、素直にaptで入れると上手く行った。もちろんopam initとかを忘れていただけの可能性はある。
ちなみにopamをソースからビルドしようとしたところ、opamが依存しているライブラリをダウンロードしようとして、md5sumが違うと言って終了するという事件があった。もちろん確認せずに勝手に解凍されては困るのでこの処理は疑いようもなく正しいのだが、こちらとしてはどうにもならないので辛かった。素直にaptで入れよう。
ちなみに、デモやドキュメントをコンパイルしようとするとフォントがないので落ちる。これに関してはフォントを持っていないこちらの問題なわけだが、フリーなフォントを使用するようにしたブランチとそれを入れていくDockerfileがあるので、それを参考にやっていく。
github.com Comparing gfngfn:master...pandaman64:use-free-font · gfngfn/SATySFi · GitHub
ちなみに、インストール前なら上の比較を見ながら変えればよいが、インストール後は~/.satysfiを見に行くのでそちらの同名ファイルを書き換えなければならない。
というわけでPDFが作成できるようになる。
しばらくデモとドキュメントのPDFとソースを比べながら手さぐりしていけばそのうちなんとかなるだろうと考えているが、果たして。