SATySFi (pronounced in the same way as the verb “satisfy” in English) is a new typesetting system with a static type system. It consists mainly of two “layers” ― the text layer and the program layer. The former is for writing documents in LaTeX-like syntax. The latter, which has ML-like syntax, is for defining functions and commands. SATySFi enables you to write documents markuped with flexible commands of your own making. In addition, its informative type error reporting will be a good help to your writing.
This software is supported by IPA Mitou Project 2017 (see the abstract here).
There is a homebrew formula for SATySFi.
$ brew install --HEAD nyuichi/satysfi/satysfi
Here is a list of minimally required softwares.
- bzip2
- cc
- git
- m4
- make
- unzip
- wget or curl
- ruby
- opam 2.0 (Installation instructions are here.)
- ocaml 4.06.0 (installed by OPAM)
Also, we must add an external OPAM repo to build. This can be done by the following command.
opam repository add satysfi-external https://github.com/gfngfn/satysfi-external-repo.git
opam update
sudo apt-get update
sudo apt-get install build-essential git m4 unzip curl
sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)
# The following command will ask if you allow OPAM to modify some files (e.g. ~/.bash_profile).
# Be sure to read its instructions. Otherwise, some environment variables won't be set.
opam init --comp 4.06.0
eval $(opam env)
opam repository add satysfi-external https://github.com/gfngfn/satysfi-external-repo.git
opam update
# Before running this scripts, install essential softwares such as GCC and Make. They can be installed from Xcode Command Line Tools.
# Also, install Homebrew.
brew update
brew install opam
# The following command will ask if OPAM modifies some files.
# Be sure to read their instructions. Otherwise, some environment variables won't be set.
opam init --comp 4.06.0
eval $(opam env)
opam repository add satysfi-external https://github.com/gfngfn/satysfi-external-repo.git
opam update
First, clone this repository and submodules. Then build SATySFi using OPAM.
# clone
git clone https://github.com/gfngfn/SATySFi.git
cd SATySFi
# build
opam pin add satysfi .
opam install satysfi
- To reinstall, run
opam reinstall satysfi
. - To uninstall, run
opam uninstall satysfi
.
Type
satysfi <input files> -o <output file>
in order to convert <input files>
(file names separated with spaces) into <output file>
. For example, when you want to convert doc.saty
into output.pdf
, the following command will work:
satysfi doc.saty -o output.pdf
-v
,--version
: Prints the version.-o
,--output
: Specify the name of the output PDF file. if this option is not given explicitly, the name of the output file is the concatenation of the base name of the input file and the extension.pdf
.--full-path
: Displays file names with their absolute path when outputting them to stdout.--type-check-only
: Stops after type checking.