(17 日目は matsud224 さん でした。19 日目は puripuri2100 さん です。)
みなさん、サティスファイしていますか!?
えっ、あんまり SATySFi していない? ナンデ?
えっ、ぜひとも SATySFi してみたいけど難しくて使いこなせない? じゃあ、代わりに scSATySFi とかを使うのはどうでしょうか?
えっ、確かに scSATySFi の出力はトッテモ素敵だけど、型システムが簡単すぎるので使う気が起きない? やっぱり複雑な型システムをもつ SATySFi を使いこなしてドヤ顔したい? なるほど……。
というわけで、画期的な文書クラスを作りました。
- SATySFi:非常に画期的な文書クラス(GitHub:zr-tex8r)
簡単! 素敵! 本質的!
scarticle クラスを使うと、誰でも簡単に、scSATySFi と同じくらい素敵な文書を作れます。具体的には、SATySFi 文書ソースを次のようになります。
% scarticle を使おう! @require: scarticle document (| title = `サンプル`; % タイトル show-title = true; % タイトルを出力するか |) '< % 本文の記述 +p {scarticle で誰でも\emph{簡単}に\SATySFi;文書を作れます。} >
えっ、stdja クラスの文書とほとんど同じでやっぱり難しそう? いえ、心配は無用です。タイトルのところを見てください。
title = `サンプル`; % タイトルは文字列で指定
stdja などの多くのクラスでは title の値は {...}
という書き方をします。これは「SATySFi の組版機能を使って組まれるテキスト」*1を表していて、高機能ではあるのですが、その代わりに、「正しい書き方を習得しないといけない」という難しさを伴っています。
このため、scarticle ではタイトルは単なる文字列の値として指定します。SATySFi の文字列値の書き方は非常に単純で、` `
の中にそのまま文字列を書くだけです。{...}
のテキストを書くときにはエスケープが必要な <
や ;
も含めて、あらゆる文字をそのまま書けます。(ただし `
だけは書けない((もちろん、SATySFi の文法を知っている強い人なら `
を含む文字列値も書けます。『The SATySFibook』の「基本的な基本的なデータ」(3.2.3 節)で説明されています。))のですが、これが必要なことはまずないでしょう。)
では本文('< >
の中身)はどうでしょうか。これは stdja などと同じ書き方をしていて((実際は stdjabook と同じコマンド(+p
、+section
、\emph
、\SATySFi
など)が使えるようになっています。ただし数式関連の命令には対応していません。))何か難しそうです。しかしこれも心配はいりません。scarticle クラスは文書を本質的にすることを指向していて、そこでは本文の内容は全く本質的でないので完全に無視されます。ヘタに書いても型エラーの原因になるだけなので、思い切って本文は省略しましょう!
@require: scarticle document (| title = `卒業論文`; show-title = true; |) '< % 省略!! >
タイトルの文字列以外はそのまま書き写すだけなので、とても簡単になりました! えっ、本文を省略してしまうと、内容がない文書になってしまう? いえ、そんなことはありません。実際にこの文書ソースをコンパイルしてみましょう。
> satysfi thesis.saty ---- ---- ---- ---- target file: 'thesis.pdf' dump file: 'thesis.satysfi-aux' (will be created) parsing 'thesis.saty' ... parsing 'scarticle.satyh' ... parsing 'pervasives.satyh' ... parsing 'list.satyg' ... ---- ---- ---- ---- ……(略)…… writing pages ... ---- ---- ---- ---- output written on 'thesis.pdf'.
この通り、本質的な内容をもつトッテモ素敵な文書になっています。しかも、箒もついてきます。*2スバラシイ!☃︎
まとめ
というわけで皆さん、scarticle クラスを使って、本質的な文書をサティスファイしましょう!