Edited at

macでSATySFiのデモファイルからPDFファイルを生成するところまで


読む前に

現状ではこれを読むことによって得られる実用的な価値は特に無いと思います。

あと、SATySFi自体のことを知りたいのなら、The SATySFi Bookがあります。https://gfngfn.booth.pm/items/1046747


はじめに

2018/02/10のお昼過ぎにTwitterのタイムラインを見ていたら、SATySFi("satisfy"と同様に発音するようです)という新しい組版処理システムが話題になってました。LaTeXの他には何かないのかなあと思っていたので(自分が使えるのかわからないけれど)ひとまず使ってみたいと感じました。

まだ情報も少ないかと思いますので、ここにインストール方法をメモしておくことにします。

「もっとマシな書き方がある、これではいかん」などと思った人がもっと詳細なものを書いてくれたり、これを修正する案が来たりすることを密かに期待しています。


  • 誤り等のご指摘ありましたら何卒…何卒…

  • もっと詳しく書いてほしい点についてもコメントがあれば対応するかもしれません



  • !2018/02/11追記




実行環境

OSは以下のとおりです。


  • macOS High Sierra

  • バージョン10.13.3

  • OCamlの最新バージョン4.06が入っている


    • (デフォルトで入ってるかもしれないと言ったのですが、なかったかもしれない。そんなわけがない気もしてきました。まあ怒られたらbrew install ocamlしてください)



スクリーンショット 2018-02-10 16.07.19.png


筆者のスペック

素人が書いたのか、プロが書いたのか判別しておきたい人のために


  • LaTeXはとても頻繁に使う(計算ノートを書くために)

  • Python, C, C++ちょっと書いたことある

  • OCaml一行も書いたこと無い

  • 型とかよくわからない

つまりド素人である


SATySFiとは

リポジトリの日本語版READMEからの引用を下記に示します。


SATySFi(英単語の “satisfy” と同様に発音します)は,新しい組版処理システムとその言語です。構文は主にテキスト部分とプログラム部分からなり,前者はLaTeX風の構文で文書を執筆するために,後者はコマンドを定義するために使われます。いわゆる函数型プログラミングの要領でコマンドが定義でき,かつ静的に型がつけられるため,柔軟な記述とわかりやすいエラー報告が実現されています。


未踏の申請テーマ概要を見ていると、作成者である諏訪 敬之(@bd_gfngfn)氏がLaTeXに対して感じていた問題点を解決するために(?)新たに作成した組版ソフトウェアのようです。


インストール方法

この節では私がやったインストール手順を紹介します。

大まかな手順は以下の通りです


  • OCaml関連の事前準備を行う



  • その他細かな準備を行う


    • wgetを手に入れる



  • リポジトリからクローンしてインストールする

  • フォントを設定する

  • デモファイルをコンパイルしてチェック

気をつけるべきことは以下のとおりです。認識していれば、手間はかかっても実行できるのではないかと思います


  • macだとwget入ってないのでそれを入れなくてはいけない

  • ocaml4.05じゃないとだめなので、そちらを使えるようにする必要がある

  • デモファイルをコンパイルするのに必要なフォントが事前には手元にないので、自分でフォントを持ってくるか、他のフォントに変えなくてはいけない

  • デモファイルをコンパイルするために必要なjpgファイルがdemoフォルダに必要なので、何かしら自分で用意しなくてはいけない


手順詳細


step1: opamを使えるようにする


  • READMEを見ると、opamを使う必要があります。私の環境では事前に入っていなかったので入れる必要がありました

  • これについては、https://qiita.com/oshuya/items/dd0faa707c5baf54249d を参考にしました


    • ! brew linkに権限で失敗していたら適当に権限をアレしてなんとかする



brew install opam

brew install hg
brew install darcs
opam init


step2: ocamlのバージョンを4.05.0に


  • 現在、SATySFiは4.06.00以降のバージョンのOCamlでは動きません。したがって、OCamlのバージョンを変える必要があります


    • これはOCaml公式が推奨しているopam switchを使う方法がよいでしょう



  • !これについては、現在issueが立っているので必要なくなるかもしれません



opam switch 4.05.0

eval `opam config env`


step3: wgetを入れる


  • macにはデフォルトでwgetがない

brew install wget


step4: リポジトリをクローンする

git clone https://github.com/gfngfn/SATySFi.git


step5: $SATYSFI_LIB_ROOT を設定する

! これは不要になったようです

* SATySFiが入る場所を指定する必要があります

* 管理者権限が不要な場所を指定したほうが楽でしょう

* インストール関連の処理はsudoを使うのが非推奨なようですし

* ~/bash_profileなどに以下のようなものを追加します

* ここの部分については、READMEじゃなくて、memo-ja-how-to-use.md を読みましょう

export SATYSFI_LIB_ROOT=/path/to/.opam/4.05.0/lib-satysfi


step6: READMEを参考にして、インストール


  • READMEどおり、下記を実行します

  • 問題がなければ、$SATYSFI_LIB_ROOT 以下の各ディレクトリに色々なものが入っているはずです

git submodule update -i

opam pin add satysfi .
opam install satysfi


step7: フォントを入れる


  • デフォルトではデモファイルをコンパイルするためのフォントがないので、それを入れます

  • おそらく、satysfi demo.saty -o demo.pdfをしたときに、怒られると思うので、そのエラーメッセージを見て適切なファイル名で適切な場所に置きます




step8: satysfi-logo.jpgを持ってくる


  • デモディレクトリにロゴ画像ファイルがないので、怒られます。何か適切に持ってきてください。

  • 私はリポジトリのトップ画像に使われてるやつをjpgで保存しました。


step9: コンパイル


  • やる

satysfi demo.saty -o demo.pdf

動いた!

スクリーンショット 2018-02-10 18.39.58.png


その他


  • フォント設定はもっと何か賢い方法があるような気がします。誰か教えて欲しい。