Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SATySFi で卒論を書いた話
Search
pickoba
September 24, 2022
Technology
0
610
SATySFi で卒論を書いた話
SATySFi Conf 2022 での発表スライドです。リポジトリはこちら
https://github.com/pickoba/satysfi-conf-2022
pickoba
September 24, 2022
Tweet
Share
Other Decks in Technology
See All in Technology
[Keynote] What do you need to know about DevEx in 2025
salaboy
0
180
今この時代に技術とどう向き合うべきか
gree_tech
PRO
2
1.9k
速習AGENTS.md:5分で精度を上げる "3ブロック" テンプレ
ismk
6
1.6k
Adminaで実現するISMS/SOC2運用の効率化 〜 アカウント管理編 〜
shonansurvivors
4
450
生成AI時代のセキュアコーディングとDevSecOps
yuriemori
0
110
[Codex Meetup Japan #1] Codex-Powered Mobile Apps Development
korodroid
2
870
Codexとも仲良く。CodeRabbit CLIの紹介
moongift
PRO
1
230
incident_commander_demaecan__1_.pdf
demaecan
0
140
「使い方教えて」「事例教えて」じゃもう遅い! Microsoft 365 Copilot を触り倒そう!
taichinakamura
0
390
AWSでAgentic AIを開発するための前提知識の整理
nasuvitz
2
170
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
930
データ戦略部門 紹介資料
sansan33
PRO
1
3.8k
Featured
See All Featured
Building an army of robots
kneath
306
46k
Being A Developer After 40
akosma
91
590k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
A better future with KSS
kneath
239
18k
The Illustrated Children's Guide to Kubernetes
chrisshort
49
51k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
The Language of Interfaces
destraynor
162
25k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Designing Experiences People Love
moore
142
24k
Transcript
SATYSFIで卒論を書いた話 SATYSFI Conf 2022 pickoba 2022.09.24
1/11 自己紹介 pickoba (修士 1 年) usagrada と卒論研究室同期 SATYSFI 歴
: そろそろ 1 年 公開している SATYSFI 関連のもの VS Code 拡張 SATYSFI Workshop 擬似コード組版ライブラリ SATYSFI Algorithm GitPod 向けテンプレート SATYSFI GitPod Template 今日のテーマ SATYSFI で卒論を書いた話
2/11 SATYSFIとの出会い SATYSFI に出会ったのは、去年の 10 月 9 月にあった卒論の中間報告で L ATEX
+ Beamer を使い苦しんだ 静的型付き言語は昔から好きだった もっと使いやすい組版言語はないのか ⇒ SATYSFI 第一印象は「括弧多いな、自然に書けるようになるのかな」 すぐに慣れ以後どっぷり浸かる
3/11 とりあえず使ってみる とりあえず研究室内の発表で SATYSFI + SLYDIFI を使ってみた 今使っているテーマは元々その時に作成したもの 執筆体験が良い L
ATEX のスライドと遜色ないものが作れる ADT とパターンマッチで木構造の絵が描けることに感動 ⇒ 卒論を SATYSFI で書きたい
4/11 卒論を SATYSFIで書くために 学科のルール的には問題なさそう PDF で出力できれば OK ページ数以外の規定なし 既存の環境(VS Code)は長文を書くにはつらそう
保存時にビルドを自動でしてほしい monaqa さんの Language Server を使いたい ⇒ SATYSFI Workshop の開発へ
5/11 SATYSFI Workshop の開発 wraikny さんが作成されていた既存の VS Code 拡張をベースに、以下の機能追加・改善を実施 12
月に SATYSFI Advent Calendar で公開 ビルド機能 ショートカットキーによるビルド・保存時のビルド 型チェック機能 保存時やタイプ時に satysfi コマンドを呼び出し出力をパースして表示 元からあったもののパフォーマンス等を改善 Language Server のサポート 単に受け口を作っただけ その他 lint や format の自動化、テスト追加なども(詳細は Qiita 記事参照)
6/11 卒論を SATYSFIで書く 卒論は実際に SATYSFI Workshop を使って執筆した 使用させていただいたライブラリ abenori/satysfi-class-jlreq ...
クラスファイル monaqa/satysfi-easytable ... 表組 monaqa/satysfi-enumitem ... 箇条書き monaqa/satysfi-figbox ... 画像挿入 namachan10777/BiByFi ... 文献管理 puripuri2100/satysfi-code-printer ... ソースコード挿入
7/11 SATYSFIで卒論を書いてよかったこと 静的型に守られているという安心感 変更の影響範囲が予測しやすい エラーメッセージがわかりやすい 「ちょっとした拡張」がやりやすい その文書限りのコマンドを作る精神的ハードルが低い Language Server が快適
(手元の環境・設定では) LuaL ATEX よりコンパイルが速い
8/11 ちょっとした拡張の例 figbox な画像にキャプションを付ける関数 let with-caption caption figbox = vconcat
?:align-center [ figbox; gap 10pt; textbox caption; ] のようなものを定義しておくと +fig-center( include-image 400pt `satysfi.jpg` |> with-caption {\SATySFi; のロゴ} ); のように使える Fig.1 SATYSFIのロゴ
9/11 SATYSFIで卒論を書いて大変だったこと 問題ライブラリの種類が少ない ⇒ その場その場でライブラリを作りつつ執筆 figbox に自動で番号付けされるキャプションを付けたい ⇒ 前述の方法を拡張して作成 擬似コードを書きたい
その時点では enumitem を利用して作成 let-block +While cond inner = '< +EnumitemAlias.item({\bold{while}\ #cond; \bold{do}})(inner); +EnumitemAlias.item({\bold{end while}})<> > 後に独立したライブラリとし、テーマの切り替えなど機能追加 ⇒ satysfi-algorithm
10/11 まとめ SATYSFI を使うと分かりやすいエラーメッセージと Language Server による支援を存分に受けられる ライブラリが少ないのは大変だが、 「困ったときは自分で作る」の精神があれば意外と乗り切れる (学部・学科の規定等があれば要確認)
卒論は SATYSFI で書ける!
11/11 SATYSFI関連の近況 SATYSFI Workshop は鋭意開発中 そろそろまたリリースします(型チェック機能周辺の改善) SATYSFI 0.1.0 の対応も SATYSFI
Algorithm も 0.1.0 対応させたい L ATEX の algorithmicx 向けのコードをテキストモードで吐けるようにしたい