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
23
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
190
Wasmで拡張できる軽量マークアップ言語 Brack
momeemt
0
82
❄️ NixOS/nixpkgsにSATySFiサポートを実装する
momeemt
2
220
Intel系FPGA上へのRISC-Vプロセッサの実装
momeemt
0
130
情報科学若手の会 2024 LT「WebAssemblyで拡張可能な軽量マークアップ言語の開発」
momeemt
0
39
Nixでつくるdotfiles
momeemt
1
43
情報特別演習I 最終発表「理工学の紙書籍を用いた学習の効率を向上させるインタフェース」
momeemt
0
33
主専攻実験(深層学習を用いたCG・画像処理)最終成果報告
momeemt
0
35
情報科学類新歓2023 履修の組み方
momeemt
0
120
Other Decks in Technology
See All in Technology
いつの間にか入れ替わってる!?新しいAWS Security Hubとは?
cmusudakeisuke
0
160
Lufthansa ®️ USA Contact Numbers: Complete 2025 Support Guide
lufthanahelpsupport
0
240
スタートアップに選択肢を 〜生成AIを活用したセカンダリー事業への挑戦〜
nstock
0
290
衛星運用をソフトウェアエンジニアに依頼したときにできあがるもの
sankichi92
1
230
セキュアな社内Dify運用と外部連携の両立 ~AIによるAPIリスク評価~
zozotech
PRO
0
100
【あのMCPって、どんな処理してるの?】 AWS CDKでの開発で便利なAWS MCP Servers特集
yoshimi0227
6
730
話題の MCP と巡る OCI RAG ソリューションの旅 - Select AI with RAG と Generative AI Agents ディープダイブ
oracle4engineer
PRO
5
110
助けて! XからWaylandに移行しないと新しいGNOMEが使えなくなっちゃう 2025-07-12
nobutomurata
2
140
モニタリング統一への道のり - 分散モニタリングツール統合のためのオブザーバビリティプロジェクト
niftycorp
PRO
1
360
Operating Operator
shhnjk
1
650
【LT会登壇資料】TROCCO新コネクタ「スマレジ」を活用した直営店データの分析
kazari0425
1
170
オフィスビルを監視しよう:フィジカル×デジタルにまたがるSLI/SLO設計と運用の難しさ / Monitoring Office Buildings: The Challenge of Physical-Digital SLI/SLO Design & Operation
bitkey
1
350
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Site-Speed That Sticks
csswizardry
10
700
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Navigating Team Friction
lara
187
15k
Visualization
eitanlees
146
16k
Scaling GitHub
holman
460
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Producing Creativity
orderedlist
PRO
346
40k
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]
までお願いします