|Number of watchers on Github||748|
|Number of open issues||67|
|Average time to close an issue||3 days|
|Average time to merge a PR||about 2 months|
|Open pull requests||39+|
|Closed pull requests||12+|
|Last commit||3 months ago|
|Repo Created||over 5 years ago|
|Repo Last Updated||2 months ago|
|Organization / Author||gfngfn|
|Do you use Macrodown? Leave a review!|
|View open issues (67)|
|View Macrodown activity|
|View on github|
|Book a Mock Interview With Me (Silicon Valley Engineering Leader, 100s of interviews conducted)|
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
SATySFi (pronounced in the same way as the verb satisfy in English) is a new typesetting system equipped with a statically-typed, functional programming language. 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 OCaml-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 was supported by:
and its development continues to this day (January 2020).
A Homebrew formula is provided for SATySFi (v0.0.2).
$ brew install --HEAD nyuichi/satysfi/satysfi
Here is a list of minimally required softwares.
--disable-sandboxingoption when running
opam init. Please see opam's FAQ for details.
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.10.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.10.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
opam reinstall satysfi.
opam uninstall satysfi.
Before using SATySFi, one should put libraries and fonts onto the appropriate directory. This can be done by invoking the following commands in order:
The former downloads the fonts required by the default settings into
lib-satysfi/dist/fonts/, and the latter copies
During this setup, the following fonts are downloaded. Consult their license before using them.
satysfi <input file> -o <output file>
in order to convert
<input file> into
<output file>. For example, when you want to convert
output.pdf, the following command will work:
satysfi doc.saty -o output.pdf
First of all, lets try to compile the demo file. It is in
demo folder. Because this demo file has
MakeFile, All you should do is only type
cd demo make
demo.pdf is created, then the setup has been finished correctly.
In addition, a concice reference of SATySFi is written by SATySFi itself in
doc folder. You need to compile it to read.
cd doc make
--version: Prints the version.
--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
--bytecomp: Use byte compiler and enhance performance of computation.
--full-path: Displays file names with their absolute path when outputting them to stdout.
--type-check-only: Stops after type checking.
--debug-show-bbox: Outputs bounding boxes for each glyph (for the purpose of debugging).
--debug-show-space: Outputs boxes for spaces (for the purpose of debugging).
Wiki (currently written only in Japanese) has some information about learning SATySFi.