Edited at

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