SATySFi で文書作成が容易なMarkdown用のクラスファイルを作成した(※ただし画期的)

これは「SATySFi Advent Caleandar 2018」の25日目の記事です。 (22日目は gfngfnさんでした。)

SATySFiには本質的な内容を出力する画期的な文書クラスがあります。使いこなしていきたいところですね。

ところで、SATySFiでは--markdownというオプションをつけてやることでMarkdown文書からPDFを出力することができます。これはこのSATySFi Advent Calendar 2108の12日目の記事で詳しく書いてあるとおりです。 この記事の中では

裁設定名 〈s〉 を変えることで様々な体裁のPDFを出力できるようにしており,現在のところリポジトリが提供しているのは mdja という名前の設定のみですが,ユーザ自身が設定を用意することも可能です.

と書いてあります。

そういうわけでこの画期的な文書クラスであるscarticle.satyhをMarkdown処理用に改造をしてみました。

中にはmdsc.satyhとmdsc.satysfi-mdとtest.mdの3つのファイルがあるはずです。

まずはmdsc.satysfi-mdファイルを~/.satysfi/dist/mdに移動させましょう。次にmdsc.satyhファイルを~/.satysfi/dist/packagesに移動させましょう。 これでこの文書クラスを使う準備ができました。

あとは

$ satysfi --markdown mdsc test.md

とすれば本質的な内容のPDFファイルが出力されるはずです。

12日目の記事で書いてあるとおり、Markdown文書の先頭で特殊なコメント<!-- -->を使うことによってヘッダを指定することができます。

ここで指定できるヘッダはscarticleと同じで(|title : string ; show-title = bool;|)というレコード型です。デフォルトでは(|title = ` `; show-title = false;|)です。試しに書いてみましょう。

[christmas.md]

<!-- (|
title = `Happy SATySFiing!` ;
show-title = true;
|) -->

とっても素敵な文章
$ satysfi --markdown mdsc christmas.md
 ---- ---- ---- ----
  target file: 'christmas.pdf'
  dump file: 'christmas.satysfi-aux' (will be created)
  parsing 'christmas.md' ...
  parsing 'mdsc.satyh' ...
  parsing 'pervasives.satyh' ...
  parsing 'list.satyg' ...

(省略)

 ---- ---- ---- ----
  embedding fonts ...
 ---- ---- ---- ----
  writing pages ...
 ---- ---- ---- ----
  output written on 'christmas.pdf'.

f:id:puripuri2100:20181224225753p:plain
christmas

この通り、本質的な内容を持つトッテモ素敵な文書になっています。しかも素敵な帽子まで! 今日は12月25ですからね(正確には、24日の夜から25日の朝までの間なので)。