Giter Site home page Giter Site logo

genya0407 / satysfi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gfngfn/satysfi

0.0 1.0 0.0 3.76 MB

A statically-typed, functional typesetting system

License: GNU Lesser General Public License v3.0

Makefile 0.52% CSS 0.43% Ruby 0.91% OCaml 97.98% Standard ML 0.16%

satysfi's Introduction

logo1

Build Status

日本語版 README はこちら

Summary of SATySFi

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).

Install using Homebrew (for OSX users)

There is a homebrew formula for SATySFi.

$ brew install --HEAD nyuichi/satysfi/satysfi

Install using OPAM

Prerequisites

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.)
    • Bubblewrap, a tool required for opam 2, cannot be installed easily yet on some kinds of environment such as Windows Subsystem for Linux (WSL) and Ubuntu 16.04. As a workaround for the time being, opam 2 can be installed without bubblewrap by passing --disable-sandboxing option when running opam init. Please see opam's FAQ for details.
  • 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

Example (Ubuntu)

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

Example (OS X Mavericks or later)

# 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

Build

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.

Usage of SATySFi

Type

satysfi <input file> -o <output file>

in order to convert <input file> 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

Command-line options

  • -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.
  • -b, --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).

satysfi's People

Contributors

elpinal avatar equal-l2 avatar forestaa avatar gfngfn avatar konn avatar leque avatar matsud224 avatar na4zagin3 avatar nekketsuuu avatar nyuichi avatar objmagic avatar omasanori avatar pandaman64 avatar qnighy avatar sakas-- avatar sunaemon avatar toruniina avatar y-yu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.