windowsでSATySFiの環境構築


はじめに

texに代わる組版システムが開発中と聞いたので使ってみたくなった
公式のREADMEでwindowsへのインストールの仕方がよくわからなかったので(特にopamのインストール)調べてやってみた
だからもっといい方法があるかもしれにあ

SATySFi

公式より

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

インストール手順

大雑把に書くと以下のようになる
1. opamの入ったCygwin環境の用意
2. Cygwinに必要なパッケージをインストール
3. いくつかのコマンド実行

1. opamの入ったCygwin環境の用意

windowsでSATySFiをインストールするためにはopamというものをインストールする必要がある
しかし(調べた範囲では)windowsではCygwin環境上で動かすしかないらしい
そのためタイトルのように「opamの入ったCygwin環境の用意」することとなる
opamの環境構築は別の記事として書いたのでそちらを参照されたし
https://qiita.com/shiba44/items/69a7bfeef82cf27794a3

2. Cygwinに必要なパッケージをインストール

ここではすでにopamが入ったCygwin環境が構築できているものとする
ここからは公式のREADMEに従えば良い
Cygwin環境に以下のパッケージをインストールする

  • bzip2
  • cc
  • git
  • m4
  • make
  • unzip
  • wget or curl
  • ruby

3. 公式に従ってコマンドを実行していく

Cygwin環境のターミナルを立ち上げ, 以下のコマンドを実行する

[user]$ opam repository add satysfi-external https://github.com/gfngfn/satysfi-external-repo.git
[user]$ opam update

このあとはSATySFiのプロジェクトを持ってきてCygwin環境でビルドするだけ

# clone
[user]$ git clone https://github.com/gfngfn/SATySFi.git
[user]$ cd SATySFi

# build
[user]$ opam pin add satysfi .
[user]$ opam install satysfi

デモ実行

ちゃんと実行するためにはまだ手順が必要
公式がわかりやすいので参照されたし
https://github.com/gfngfn/SATySFi/blob/master/memo-ja-how-to-use.md

基本的にやることは「ライブラリルート」の構築,フォント設定だけ

ライブラリルートの構築

サンプルがlib-satysfiという名前で公式のリポジトリに置いてあるので, それをusr/local直下に.satysfiという名前で配置する
つまり以下のようなディレクトリ構造がusr/localにできていればいい

~/.satysfi/
    |
    +-- dist/
        |
        +-- fonts/
        |
        +-- hash/
        |   |
        |   +-- default-font.satysfi-hash
        |   +-- fonts.satysfi-hash
        |   +-- mathfonts.satysfi-hash
        |
        +-- hyph/
        |   |
        |   +-- english.satysfi-hyph
        |
        +-- packages/
        |
        +-- unidata/
            |
            +-- EastAsianWidth.txt
            +-- LineBreak.txt
            +-- Scripts.txt

実行

ここまでやってとりあえず実行してみる
ローカルに持ってきた公式リポジトリのdemoディレクトリ
https://github.com/gfngfn/SATySFi/tree/master/demo
をターミナルで開き以下を実行する

[user]$ satysfi demo.saty -o output.pdf

するとこんな感じで怒られるはず

! [Error] package file not found:
      dist/fonts\Junicode.ttf

これは「必要なフォントファイルが入ってないよ!!」ということなので「ないよ!」と言われたフォントファイルをそれぞれネットからインストールしてきて~/.satysfi/dist/fontsフォルダに置いていく

そうすると今度は

! [Error] satysfi-logo.jpg: No such file or directory

と言われる

これは「demoディレクトリ内にsatysfi-logo.jpgというファイルがないよ!」って言ってる
なのでdemoディレクトリ内にsatysfi-logo.jpgという名前のjpgファイルを追加すれば良い

これで終わり
エラーの代わりに以下が出力されたら成功

  output written on 'output.pdf'.

参考文献

https://qiita.com/aomidro/items/9b8d66a51e81931f1c98
https://qiita.com/puripuri2100/items/a63e0c48f245dfcb0446
https://qiita.com/pochiMasahiro/items/91f2eecbffaf85c3f2a3

最後に

いつかTex-Liveみたいにディストリビューションが公開されるのかな
求むSATySFi-Live