-
Notifications
You must be signed in to change notification settings - Fork 82
コマンドライン書式
satysfi [<オプション>]... <入力ファイル名>
- オプションと入力ファイル名の間の順序は任意です。
- 入力ファイル名は必須です。また、特に
.saty
などの拡張子は補われません。 - 実際には入力ファイル名は複数指定できるようですが、現状では、最後の1個以外は無視されるようです。
以下のヘルプメッセージを端末(標準出力)に出力して直ちに終了します。
-o Specify output file
--output Specify output file
-v Prints version
--version Prints version
--full-path Displays paths in full-path style
--debug-show-bbox Outputs bounding boxes for glyphs
--debug-show-space Outputs boxes for spaces
-t Stops after type checking
--type-check-only Stops after type checking
-b Use bytecode compiler
--bytecomp Use bytecode compiler
--text-mode Set text mode
--markdown Pass Markdown source as input
-help Display this list of options
--help Display this list of options
バージョン情報を端末(標準出力)に出力して直ちに終了します。
SATySFi version 0.0.3
例えば、-o /tmp/duck.pdf
を指定すると /tmp/duck.pdf
に出力されます。
- 既定では入力ファイル名の拡張子(最後の
.
以降の部分)を.pdf
に変えたものが出力ファイル名となります。 - テキスト出力モード(
--text-mode
指定)では出力ファイル名指定は必須です。
入力ファイルに書かれたコードを型検査して、その式の型が判明した時点で、その型を表示して終了します。
例えば、answer.saty
に
42
とだけ書いて、satysfi -t answer.saty
を実行すると、端末出力の最後は以下のようになります。
……(略)
reading 'answer.saty' ...
type check passed. (int)
すなわち、42
はint
型であることがわかります。この要領で、いろいろな値の型を調べることができます。
入力 | 型 |
---|---|
42 |
int |
42. |
float |
`42` |
string |
{42} |
inline-text |
set-font-size |
length -> context -> context |
(6 * 9, 42mm) |
int * length |
set-font Kana |
(string * float * float -> context -> context |
(/') |
length -> length -> float |
また、例えば stdjabook パッケージを読みこんだ時に定義される \figure
コマンドの型を調べたい場合は、
@require: stdjabook
command \figure
と書いた入力ファイルを-t
付きでコンパイルすると、次のように表示されます。
……(略)
type check passed. ([string?; inline-text; block-text] inline-cmd)
※ブロックコマンド(+p
など)にはこの方法は使えないようです。
出力中の全てのグリフ(フォントの字形)について、そのバウンディングボックスを枠で明示してPDFに出力します。例えば、通常は次のような出力が得られる場合:
--debug-show-bbox
を付けると以下の出力が得られます。
組版結果として生じる空きについて、それのある位置に枠を出力します。例えば、前項で用いた例の場合、--debug-show-space
を付けると以下の出力が得られます。
※--debug-show-space
の枠は--debug-show-bbox
のものと比べて線幅がかなり太いですが、実際の「空きの境界」は線幅の中央の位置であることに注意。
コンパイル中の過程表示の端末出力において、通常はファイルはパス無しのファイル名で示されます。例えば入力ファイル名がdoc/something.saty
の場合、過程表示は以下のようになります。
---- ---- ---- ----
target file: 'something.pdf'
dump file: 'something.satysfi-aux' (will be created)
parsing 'something.saty' ...
parsing 'stdjabook.satyh' ...
parsing 'pervasives.satyh' ...
……(略)
---- ---- ---- ----
output written on 'something.pdf'.
ところが--full-path
付きでコンパイルした場合は、次のように、ファイルが全てフルパス名で表示されるようになります。
---- ---- ---- ----
target file: '/home/me/doc/something.pdf'
dump file: '/home/me/doc/something.satysfi-aux' (will be created)
parsing '/home/me/doc/something.saty' ...
parsing '/home/me/.satysfi/dist/packages/stdjabook.satyh' ...
parsing '/home/me/.satysfi/dist/packages/pervasives.satyh' ...
parsing '/home/me/.satysfi/dist/packages/gr.satyh' ...
……(略)
---- ---- ---- ----
output written on '/home/me/doc/something.pdf'.
-b
オプションはSATySFiの動作を「純粋なインタプリタ方式」から「中間コードへコンパイルする方式」に変更します。これにより多少(大量の計算が発生する文書では大いに)動作が速くなるはずです。
--text-mode <形式設定名>
が指定された場合、SATySFiは“組版”内容をPDFではなくテキストで出力する動作に切り替わります。この機能を利用すると、例えば、SATySFi文書をHTML形式やLaTeX形式に変換することが可能になります。(それなんてMacrodown?)
テキスト出力モードの詳細については、「SATySFiのテキスト出力モードのプロトタイプ」の記事を参照してください。
--markdown <体裁指定名>
が指定された場合、入力ファイルをSATySFi言語ではなくMarkdown(の方言※)のソースとして読み取り、それをSATySFiの組版機能を用いてPDF文書に変換します。
※元祖Markdownの機能の中では「画像挿入」と「HTMLタグ直接記述」が非対応です。
<体裁指定名>
はMarkdownの各要素をどのようなSATySFiのコマンドで“実装”するかを決めるものであり、その設定内容は<体裁指定名>.satysfi-md
というファイルに記述されます。SATySFiの標準配布にはmdja
という体裁指定が既に用意されているので、取りあえずは、次のようにしてMarkdownをPDFに変換できます。
satysfi --markdown mdja some-doc.md
Markdown入力機能の詳細については、「SATySFiによるMarkdown文書からのPDF出力」の記事を参照してください。
- トップページ
- The SATySFibook Web公開版 第1版
- Wiki
- 目的別パッケージ一覧
- コマンドライン書式
- SATySFiコマンド一覧
- Satyrographos(パッケージマネージャ)
- 新しい言語機能の紹介
- 言語機能の構想