#技術書典 18にて、FigmaやJetBrains IDEプラグインに関する同人誌を執筆・頒布・オフライン出展しました

2025/05/31〜06/15 まで、技術書典18が開催されました。

techbookfest.org

 
自分は2つのサークルで参加しました。1つは会社の同僚との合同サークルであるPPSPです。
#技術書典 18 にて、 サークルPPSPの新刊合同誌向けに「デザインしない人のためのFigma操作とFigma MCPサーバ自作」を執筆・頒布します - メモ的な思考的な

もう一つは個人サークルthinkAmiです。
#技術書典 18 にて、「JetBrains IDE プラグイン開発・運用ガイド ~ Tool Window のあるプラグイン Railroads 編 ~」を頒布します - メモ的な思考的な

 
一般参加者として技術書典にはよく参加していますが、出展側での参加は初めてだったことから、サークル参加したときの内容をメモとして残しておきます。

 
目次

 

きっかけ

元々物理本が好きなことから、どのような流れで本ができるのか気になっていました。過去に技術書典への出展を考えたこともありましたが、一人での参加は色々必要だと感じていました。

そんな中、会社の同僚から「合同誌で参加しましょう」との声がけがあり、メンバーも集まったのでサークル応募することになりました。ありがたい限りです。

その後、サークル参加が決まったことで、色々と動き出しました。

 

執筆

ここでは執筆まわりについて記載します。

 

執筆環境構築について

執筆をする前に執筆環境ができていたほうが色々進めやすいため、執筆の環境を構築しました。このあたりは、プロジェクト開始前にCIやLinterなどの環境を整備するのと同じような感覚でした。

初めてということもあり、執筆環境は「定評のある執筆環境を使ってほとんどカスタイマイズせずに使う」こととし、TechBoosterさんの Re:VIEW Template を使うことにしました。
TechBooster/ReVIEW-Template: TechBoosterで利用しているRe:VIEWのテンプレート(B5/A5/電子書籍)を公開しています

Re:VIEW Template にはDockerを使ってビルドするスクリプトも用意されていました。試してみたところ、Re:VIEW形式からpdfを生成するような感じでした。今回は

  • markdownRe:VIEW → pdf のような順で原稿をビルドしたかった
  • 物理本向けと電子本向けにちょっと設定を変更する必要があった

ということから、物理本・電子本むけに、それぞれ次のようなスクリプトを作成しました。

 
物理本向けスクリプト

#!/bin/bash
[ ! -z $REVIEW_CONFIG_FILE ] || REVIEW_CONFIG_FILE=config.yml

# コマンド手打ちで作業したい時は以下の通り /book に pwd がマウントされます
# docker run -i -t -v $(pwd):/book vvakame/review:5.8 /bin/bash

# markdownからpdfを生成する場合は、articleディレクトリの中で rake task を実行する必要がある
# そうしないと以下のエラーになる
# 
# エラー例: npm run pdf した場合
# bundler: failed to load command: review-preproc (/usr/local/bin/review-preproc)
# /var/lib/gems/3.1.0/gems/review-5.8.0/lib/review/preprocessor.rb:34:in `initialize': No such file or directory @ rb_sysopen - _refiles/*.re (Errno::ENOENT)
# 
# エラー例: Dockerの /book の中で rake pdf した場合
# rake aborted!
# No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
docker run -t --rm -v $(pwd):/book vvakame/review:5.8 /bin/bash -ci "cd /book && ./setup.sh && cd /book/articles && REVIEW_CONFIG_FILE=$REVIEW_CONFIG_FILE rake pdf"

 
電子本向けスクリプト

#!/bin/bash
[ ! -z $REVIEW_CONFIG_FILE ] || REVIEW_CONFIG_FILE=config-ebook.yml

docker run -t --rm -v $(pwd):/book vvakame/review:5.8 /bin/bash -ci "cd /book && ./setup.sh && cd /book/articles && REVIEW_CONFIG_FILE=$REVIEW_CONFIG_FILE rake pdf"

 
他の部分で手を加えるとレイアウトが崩れてしまうかもしれないと考え、今回スクリプト以外はテンプレートのままの設定とし、項目の値だけ上書きしました。

 

ネタについて

合同誌のネタ縛りはなかったので、ネタについては割と早く「JetBrains IDEプラグインを作ったときのこと」で決まりました。

次にどのように執筆していくと良いのかを考えました。ブログは書いているのですが、執筆となるとまた違うような気がしたためです。

そこで、手元にあった同人誌「ライティング管理がはかどる本(同人誌版)」を読み、「3. プロットを作る」に従って進めるのが良さそうでした。
ライティング管理がはかどる本(同人誌版):はかどりたいの会

 
アウトラインに加えて各章の執筆をしてみたところ、合同誌にしては自分のページ数が多くなりすぎ、全体のバランスが悪くなりそうな予感がしました。そこで、

  • 個人サークル
  • 合同サークル (PPSP)
    • なにか別のネタを書く

とすることにしました。

 
合同サークルのネタを考えたところ、最初は社内ブログに書いた記事を考えていました。ただ、日々を過ごしているうちに「デザインしない人(=自分)向けに、Figmaの操作がまとまったものがほしい」となった結果、Figmaのネタとなりました。

改めてFigmaのネタでアウトラインを考えてみたところ、今度はページが減りすぎました。そこで

より、後半に OpenAPI スキーマ + MCPサーバのネタを追加しました。

 

執筆の進め方について

今回の2冊の執筆ではネタと書きたいことが決まっていたため、自分で書き進めました。

ペースとしては、平日は1時間くらい、休日は半日〜筆が乗ったときは1日くらい、VS Codeを使って執筆してました。

また、「最初からいいものを書く」のではなく、「とりあえず書きたいことや着手しやすい章から着手して、あとで編集・校正する」というスタンスで進めました。最初はなぐり書きに近い感じでしたが、書いているうちに肉付けされていきました。

 

コミット履歴によると、全体を書き終えるまでのタイムラインは以下のような感じでした。

日付 内容
03/05 JetBrains IDE プラグイン本の原稿を書き始める
03/15 JetBrains IDEプラグイン本の全体を書き終える
(60ページ、約52,000文字)
03/17 合同誌のアウトラインを書き始める
04/08 合同誌の全体を書き終える

 
PPSPの方ではサークル主さんの進行のもと、スケジュール、役割分担、情報共有などの定例会がありました。スケジュールを意識して進められたので、本当にありがたかったです。

また、会社のGitHubのプライベートリポジトリで各自の原稿を別ファイルで管理しました。基本はmainブランチに直接pushし、コンフリクトしそうな設定系についてはプルリクを作ったりしました。

 

記法について

基本はmarkdownで良かったのですが、それでもいくつか markdown 以外の記法で対応したところがあったので、まとめておきます。

 

改行

\ 2つを記入します。

一方、Linux環境でのプラグイン開発経験はないため、問題なく開発できるか分かりません。
\
\
ここで、Windows利用者向けの注意点です。

 

強制改ページ

\newpage だけを一行に書いておきます。

 

注釈

本文の注釈を入れたい箇所に [^1] を、実際の注釈として [^1]: *** のように使います。[^1] にある数字は別ファイルであれば重複しても問題ありませんでしたが、同じファイルだと全部同じ注釈になってしまいました。なお、数字の順番や欠けは気にしなくて大丈夫でした。

前述の通り、 JetBrains では JetBrains IDE のプラグイン開発向けに公式テンプレートを GitHub に用意しています[^2]。

[^2]: https://github.com/JetBrains/intellij-platform-plugin-template

 

テーブルの横幅

markdownでのテーブルの前に //tsize[|latex|45,55] のような形で記載します。 45,55 は各列の横幅指定です。

//tsize[|latex|45,55]

|項目名|値|
|---|---|
|Name|Sign Plugin (任意の名前)|

画像

画像ファイルを images ディレクトリに置き、本文で参照します。デフォルトだと、 images ディレクトリのサブディレクトリは認識しなかったと思います。

![RailroadsのTool Window](railroads_tool_window.png)

 

校正について

まずは、自分の原稿に対する校正についてです。

TechBoosterさんの Re:VIEW Template には各種校正ツールが含まれていました。

ただ、ちょうどJetBrains IDE プラグイン本を書き上げたあたりでGoogle Gemini 2.5 pro が登場したため、試しに Cline + Gemini 2.5 pro を使った原稿チェックを試してみました。

「著者の文体を崩さない」という制約をかけた上で原稿を渡したところ、誤字脱字やファイルの誤りなどを修正してもらえました。チェックが終わった時点では「褒め言葉も色々もらえたので、これで完成では...」と考えていました。

しかし、修正後の文章を読んでみても、まだまだ直したほうが良さそうな状態でした。そこで、原稿を紙に印刷して、

  • 書いてあることが分かりにくい部分
  • ソースコードなどがページをまたがってしまって読みにくい部分

を中心に、こんな感じで赤字を入れて修正しました。5/18頃まで、2冊の原稿を直していたようです。

 
次にPPSPサークルの同人誌については、 Re:VIEW Template でビルドしたpdfをGoogleドライブで共有してコメントする形で、お互いでレビューを行いました。

 

表紙について

合同サークルPPSPの表紙は社内のデザイナーさんの協力にてステキなものになりました。

 
一方、デザイナーがいない個人サークル本については、生成AIを使って何かのデザインを作り出すことも考えました。しかし、今回はシンプルに文字だけとすることにしました。

次に、表紙を作るためのツール選びです。文字だけの表紙であれば GIMP で作っても問題なさそうと考えました。そこで、JetBrains IDE プラグイン本は、技術書典公式の「後から印刷」を利用することを考慮し、

  • GIMP 3系
  • 日光印刷さんのA5テンプレート

を使って表紙を作りました。

 

入稿

ここでは、自分の個人サークルでの入稿について記載します。

 
個人サークルはオンライン参加なので、本来は「後から印刷」だけで問題ありません。ただ、初参加ということもあり、「後から印刷」仕様の同人誌がどんな感じになるのか分かりませんでした。

そこで、最初に印刷した分はサンプル扱いにすればよいと考え、「後から印刷」と同じ仕様、同じ印刷所で事前に印刷してみることにしました。

 
後から印刷の仕様は以下で確認できました。
後から印刷の仕様や部数に制限はありますか? – 技術書典ヘルプセンター

この情報をもとに日光印刷さんのページを確認し、オンデマンド印刷のフルカラーセットで支払い・申込みをしました。
オンデ無線トジフルカラーセット – 日光企画コーポレートサイト

しかし、日光企画さんからご指摘いただき、個人サークルのように「表紙は文字だけ、黒一色」の場合には、オンデマンド印刷の無線トジ基本料金のプランで申し込む必要がありました。
オンデ無線トジ基本料金 – 日光企画コーポレートサイト

もし黒文字だけの表紙にする場合は、プランを間違えないようにする必要があります。

 
ちなみに、後から印刷は「フルカラー」しか選べません。この点については、自分の場合は「フルカラーだが、表紙はスミで良い」と後から印刷の入稿フォームの備考欄へ入力すれば良いようでした。状況によって異なるかもしれないため、「後から印刷」を使うが表紙がスミの文字しかない場合は、あらかじめ聞いておくとよさそうです。

 
なお、印刷データ的には、

  • GIMP 3系で作成した表紙 (psdファイル)
  • TechBoosterさんの Re:VIEW Template を使った本文 (pdfファイル)

で問題ありませんでした。

 

オフライン会場の様子

合同サークルPPSPでは誰もオフライン会場での出展経験がありませんでした。そこで、以下の同人誌を読みました。特に、「スペース設営を支える技術2」の章 頒布物が一種類のスペース設営 はPPSPサークルの状況とマッチしていたため、当日の展示イメージを膨らませることができました。

 
オフライン会場では、公式から提供いただいた「完全手ぶらセット」の他、

  • 見本誌立て x 2
    • 見本誌が2冊あったため
  • ブックカバー
  • 卓上ポスター
  • スケッチブック

などが活躍しました。また、売り場の椅子2脚に対して売り子3名だったこともあり、別途同僚の持ち込んだ椅子も活躍しました。

なお、今回はエアコンが結構効いている場所だったので、羽織るものを持っていって正解でした。

 
PPSPのブースは落ち着いていたため、売り子をしたり買い物をしたりして過ごしました。ありがたいことに、記事がささった方とは各執筆者が会話できたのもとても良かったです。これはオフライン参加の良いところと改めて感じました。

 

後から印刷について

技術書典の「後から印刷」を利用する場合、会期が終わった直後の6/16に入稿する必要がありました。
オンラインマーケット「電子+紙」およびオフライン会場「会場(電子+受注生産)」入庫の手引き – 技術書典ヘルプセンター

 
そこで、日光印刷さんへ入稿したデータを使い、指定したフォームで入稿しました。その後、通知された口座へ銀行振込を行いました。入稿可能日や振込可能期間が短いので注意が必要でした。

後日、受付完了のメールが届きました。たぶん問題なく発送まで進むと思います。

 

おわりに

「同人誌の執筆〜入稿〜頒布」という一連の流れにふれられたのはとても良い経験となりました。

また、重ねてとなりますが、オフライン会場で同人誌を手にとってくださった方とのやりとりも楽しかったです。

最後になりましたが、運営者のみなさま、参加者のみなさま、ありがとうございました。