SATySFi でスライドを組んでみた話
はじめに
この記事は SATySFi Advent Calendar 2023 9日目の記事です。8日目も10日目もまだ誰もいません。
今年もアドベントカレンダーの時期がやってきました。たまーに SATySFi で文書を書く MasWag です。主に弊サークル (yabaitech.tokyo) の記事を書くのに SATySFi を使っています。
と言いつつ最近弊サークルは活動が停滞気味で、 SATySFi を使う機会もめっきり減ってしまいました。一方で本業の都合でスライドを作る機会は増える一方です。ということで、スライドを SATySFi で組んでみよう!というのがこの記事の概要です。
なお筆者はスライドは通常文字ではなく図や絵などが主体となるものであり、WYSIWYGで書く方が効率的だというスタンスを取っています。一方で文字情報が主となるようなスライドも場合によってはあり、本稿ではそのようなスライドに限定して組んでいます。例えば Gr で頑張って図を書こう、みたいな方向性ではありません。
また、本稿は基本的には SLyDiFi を使ってスライドを組んでみた、というだけのものになります。なのでSLyDiFiに既に慣れ親しんでいる方からするとやや物足りない内容になっているかもしれないです。一方で、 SLyDiFi やその他既存の SATySFi のパッケージを使うことで、これくらいのスライドは容易に組むことができる、という実例になれば幸いです。
こういうものができます
今回作ってみたスライドはここからダウンロードできます。ソースコードなどはGitHub上で公開しています。今回スライドを作るにあたって、普段使っているのと同じような theme を組んでみました。今回はあまり使っていないですが、実はタイトルページの冒頭にロゴを出力したり、footerをもう少しちゃんと指定したりできます。
(ドキュメントは…間に合わないので (多分) 後で書きます…)
(theme単体での公開も…もう少し安定してから考えます…)

こういうパッケージを使いました
今回スライドを組むにあたって、以下のような既存のパッケージを使いました。
Colorbox
スライド中でいわゆる alert みたいなものを作りたくなることはあると思いますが、Colorboxで実現できます。今のところ通常の段落などと同じように上から下に組むことしかやっていませんが、
SlydifiGraphics.put-text
とかを上手く使うと任意の場所に表示できるかもしれないです (自信はあんまりないです)。実はalertをちょっと短かめにしたりちょっと斜めにしたい場面もありますが、それはできそうなのかあまり検討がつきません。

Enumitem
Enumitemを使うとかなり柔軟な箇条書きが実現できます。細かい使い方は公式のドキュメントを参照してください。

BiByFi
SATySFiで参考文献を扱うときには BiByFi が使えますが、SLyDiFi上でも一応使えます。「一応」と書いたのはどうも改ページの処理が上手く行かないようで、文献の個数が多くなると上手く組めないみたいです。LaTeXの beamer なら allowframebreaks
オプションで対応可能なんですけどね…


その他
その他にも Easytable や Figbox も便利に使えますが…細かい使い方は公式のドキュメントを参照してください。例えばこういう表も組めます。

こういうのもできれば良いんですが…
こういうのもできると嬉しい場面はあると思いますが、ちょっと SLyDiFi ではどう実現すれば良いのかが良くわからないです。
ページ内でのframeの垂直方向の位置指定
行内の中央寄せや右寄せをするための +center
や +right
などのコマンドは実装しましたが、スライド中ではページ内でframeを垂直方向で中央に寄せることもあると思います。これはどうやれば良いでしょうかね? SlydifiGraphics.put-texts
で全文を中央に配置するのはできそうに思いますが…
吹き出し
スライド内で数式や図のどこかを指して補足説明するために、吹き出しを使いたくなることは良くあると思いますが、どうしたら良いですかね…
自動改ページ
前述の BiByFi の話とも関連しますが、beamer の allowframebreaks
のような、自動で改ページができると結構便利だと思います…がこれをやるにはまず SLyDiFi の改ページ処理をちゃんと理解しないといけないですね…
いかがだったでしょうか
今回はざっと SLyDiFi でスライドを組んでみました。beamerと比べると若干機能面で足りないこともありますが、これくらいの機能で十分なら比較的簡単にスライドを組めました。LaTeXと違ってSATySFiのエラーメッセージは比較的ちゃんとしていて嬉しい一方で、やはり参考になる実例が少なくてとっつき辛い面もあるので、その辺りの参考になれば幸いです。