LoginSignup
3
5

More than 5 years have passed since last update.

windowsでSATySFiの環境構築

Last updated at Posted at 2018-12-25

はじめに

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

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5