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 Conf 2023「SATySFiを使って学類新歓冊子を発行した」
Search
Mutsuha Asada
October 22, 2023
Technology
0
22
SATySFi Conf 2023「SATySFiを使って学類新歓冊子を発行した」
https://connpass.com/event/295734/
Mutsuha Asada
October 22, 2023
Tweet
Share
More Decks by Mutsuha Asada
See All by Mutsuha Asada
❄️ tmux-nixの実装を通して学ぶNixOSモジュール
momeemt
1
170
Wasmで拡張できる軽量マークアップ言語 Brack
momeemt
0
78
❄️ NixOS/nixpkgsにSATySFiサポートを実装する
momeemt
2
220
Intel系FPGA上へのRISC-Vプロセッサの実装
momeemt
0
130
情報科学若手の会 2024 LT「WebAssemblyで拡張可能な軽量マークアップ言語の開発」
momeemt
0
37
Nixでつくるdotfiles
momeemt
1
39
情報特別演習I 最終発表「理工学の紙書籍を用いた学習の効率を向上させるインタフェース」
momeemt
0
32
主専攻実験(深層学習を用いたCG・画像処理)最終成果報告
momeemt
0
33
情報科学類新歓2023 履修の組み方
momeemt
0
120
Other Decks in Technology
See All in Technology
Create a Rails8 responsive app with Gemini and RubyLLM
palladius
0
140
AIのAIによるAIのための出力評価と改善
chocoyama
0
500
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
130
JSX - 歴史を振り返り、⾯⽩がって、エモくなろう
pal4de
3
1.1k
(非公式) AWS Summit Japan と 海浜幕張 の歩き方 2025年版
coosuke
PRO
1
330
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
180
DenoとJSRで実現する最速MCPサーバー開発記 / Building MCP Servers at Lightning Speed with Deno and JSR
yamanoku
1
280
AI技術トレンド勉強会 #1MCPの基礎と実務での応用
nisei_k
1
240
BrainPadプログラミングコンテスト記念LT会2025_社内イベント&問題解説
brainpadpr
0
150
[TechNight #90-1] 本当に使える?ZDMの新機能を実践検証してみた
oracle4engineer
PRO
3
140
原則から考える保守しやすいComposable関数設計
moriatsushi
3
500
Navigation3でViewModelにデータを渡す方法
mikanichinose
0
210
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
92
6.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Speed Design
sergeychernyshev
31
1k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Six Lessons from altMBA
skipperchong
28
3.8k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
940
Building Applications with DynamoDB
mza
95
6.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Transcript
SATySFiを使って 学類新歓冊子を発行した 筑波大学 情報科学類 浅田睦葉 (@momeemt) 1
2 学類新歓 ・12月〜2月にかけて学類新歓冊子を作成する ・〜2020年新歓まではDTPで作成 ・2021年〜2022年新歓はLaTeXで作成 ・2023年(今年)新歓はSATySFiを使ってみた ・純粋に気になっていた ・同期に有識者がいて、クラスファイルの作成をお手伝いしてもらえた
3 作ったもの ▲ 表紙絵 (機械学習を 好きな友人が生成+デザイン) ▲ 目次 ▲ 本文
4 原稿の回収 執筆協力者 (10人程度) Markdown を用いて執筆 GitHubで管理 push 新歓委員 (3名)
原稿を SATySFiに変換
5 執筆環境の提供 ・新歓委員やSATySFiで書きたい人に 執筆環境を提供 ・amutakes/satysfi-base-image を ベースに必要なパッケージ・パンフ用 クラスファイルをビルド ・当時はOCamlに触れたことがない人が 多かった(自分も)ので
Docker環境が あると共有しやすかった ・Devcontainerを使ったのでVSCodeを 入れれば誰でも執筆環境を用意できた
6 クラスファイル ・puripuri2100さんがパンフレット用の クラスファイルを実装してくれた ・章名や浮動図の実装、フォント追加など を実装してくれている(#1, #4, #9) ▲ 追加されたもの
7 二段組の実装 ・例年恒例の「筑波大学用語辞典」を実装す るために実装 ・大学でpuriさんに講義を受けつつ実装した ・`page-break-multicolumn`を使って 複数カラムを描画するドキュメントを作成
8 章ごとに分割 ・パンフレットには1段組のページも 2段組のページも章扉もある ・1つの文書内でdocumentを切り替える 方法が分からず、章ごとに別々にビルド して最後にpdfuniteで結合する形を取った → start-pageを調整ごとに書き換える ことに...
・satysfi-auxを使ってみる?という話も 出たが結局間に合わず
9 広がり ・生物学類の2023新歓パンフレットも SATySFiで作られている ・satysfi-class-coins-shinkan23- pamphlet を友人がForkしてカスタマイズ したらしい
10 様々な工夫 ・パンフレットの作成にあたって様々な 工夫を行っていた CI / 成果物のアップロード → `satysfi --type-check-only`を利用
して文書の品質を担保した → textlintを使ってPRコメントに指摘が 書き込まれるようにした → 成果物はReleaseに置かれるようにした → めっちゃ圧縮してDiscordにも送った ▲ 手元にビルドしなくてもチェック可能 ▲ 連絡用のDiscordに圧縮した成果物も来る
11 様々な工夫 すべてのTodoをGitHubで管理 → 担当教員をGitHub Organizationに 招待することでパンフに関する連絡は メールを使う必要がなかった ▲ Issueを立ててくれた
▲ 入稿できると嬉しい
12 感想 <SATySFiについて> ・前提として、触ったことない技術に触れられるのは楽しい ・文書を書きながら、足りない部分は自分で定義できて、かつそれが静的に検査される体験が 今までなかったのでモチベーションがかなり保てた ・が、パンフレットを作るのにSATySFi以外へかなり労力を割いていたので、SATySFi自体 への理解が進んだとは言えない。もう少し勉強してライブラリなども作ってみたい <執筆環境について> ・執筆状況がすべてGitHubに残るので引き継ぎが楽
→ 学生団体は人の入れ替わりが激しく引き継ぎの質が毎年保証できないので 余計にGitHubで管理されていると良い ・原稿はMarkdownかプレーンテキストで回収した方がいい → 結局レイアウトは委員が考えるのと、執筆ハードルは低い方がいいから
13 最近は ・個人的な話で恐縮ですが、最近は大学の レポート課題はだいたいSATySFiを 使っています ・satyxinでビルドすることが多い ・ポジティブな動機 → 普段Canvasなどで作るプレゼン資料 をSLyDIFi
のテーマを作成して使いたい → レポート用のクラスファイルを作りたい ・ネガティブな動機 → そもそも最初に触った組版言語が SATySFiなのでそれ以外の言語(LaTeX など)の環境構築とか辛さがあまり分からず 親だと思っている
14 まとめ ・情報科学類の新歓冊子作成にSATySFiを使った ・冊子用のクラスファイルを作った ・puripuri2100さんに大枠を作ってもらい、委員で二段組・ページ数管理などを追加 ・Docker・Devcontainerで執筆環境を提供した ・執筆協力者から原稿をMarkdownで受け取って委員で書き直した ・章ごとに分割してそれぞれビルドしてpdfuniteで結合した ・トンボづけはAdobe Acrobatで行った
・作成したクラスファイルは他学類の学生がForkし、そちらでも使われた ・パンフレット作成の全てはGitHubで管理した ・CI・自動ビルドなどを走らせて確認の手間を減らした ・短い時間で人が入れ替わり引き継ぎをする必要があるのでGitHubで管理するのは良い ・委員は協力者に対してできるだけ執筆ハードルを下げることが重要 ・パンフ作成以後もレポート作成などで使っている ・SATySFi自体の解像度はまだ全然粗いので今後も勉強して使っていきたい ・ご質問などがありましたら
[email protected]
までお願いします