見出し画像

Markdownでお手軽に高品質な技術同人誌を出す方法

1/25土曜日に開催される技書博11に、サークル親方Project(いー11)に委託で久々に本を出します。その名も「Vivliostyleで技術同人誌を始めよう」です。ページ数は86ページで、金額は500円です。

つまり「Markdownでお手軽に高品質な技術同人誌を出す方法」を実践して、それについて書いた本です。このメソッドを広めたく、戦略的な金額(印刷費ギリ)にしていて、なおかつリポジトリも公開しています。

まずは実際にどういう品質なのか見てください

扉です
目次です
目次と、第一部の中扉です
本文です
本文です

どうですか?めっちゃ良くないですか?既存のRe:VIEW以外でのPDF作成を思えば段違いのクォリティだと思います。

なお、この装丁はVivliostyleのテーマファイルという手法で作られているのですが、最初は思いつきで僕が開発し始め、途中からはもっとさんが本格的にCSSをいじってくれました。僕は原稿に専念できました。

本は1/25(土曜)に横浜産貿ホール マリネリアにくれば500円で実物を入手することで、実際に印刷所で印刷したもの、手触り感を確認できます。

さらに!リポジトリを公開していてGitHub ActionsでPDFを生成しているので、PDFも実質無料で入手できます。お得ですね!!!!

内容も目次にあるとおり

  • そもそも本ってどういう構造なんだっけ?どういう手順で書くんだっけ?

  • 環境構築

  • Markdownの説明

  • 印刷までの早見表

  • Vivliostyleについて

と、本を書くために必要なことを載せています。

それだけだとこの記事の意味が薄いので、僕が今回この本を書いたことについて記事にしてみます。

技術同人誌を作る大変さ

技術同人誌はRe:VIEWで作るのが一般的です。Re:VIEWのバックエンドにあるLaTeXは全世界レベルで数十年の組版・印刷のノウハウが濃縮され続けたものです。またRe:VIEW自体も日本でのデジタル組版技術が圧倒的です。

ただし、Re:VIEWで本を作るのは大変です。Re:VIEWとLaTeX固有のトラブルに遭遇することが度々あります。

  • Re:VIEW記法という独自記法を使っているため、ChatGPT/ClaudeのようなAIが全く学習しておらず、サポートを受けることができません。頑張れば対応するためのプロンプトは作れますが、それはそれで大変です。そのプロンプトの分、生成AIの持つ貴重な知性を消費してしまいます

  • Re:VIEWの知識だけではどうしようもない局面もあり、LaTeX固有のノウハウが必要になることがあります

  • LaTeXの出力するエラーメッセージは人類には難しすぎます

  • LaTeXやRe:VIEWは継続的にアップデートされているため、それらに追従する必要があります。特にLaTeX部分をいじったりして、秘伝のタレ状態になっているとアップデートが困難になります

  • LaTeXはお世辞にも、メンテナンス性がいいとは言えません

  • ReVIEWやLaTeXの問題とは限らないが、生成したPDFが、なぜか印刷所で問題を起こして、オペレーターの方から急に電話がかかってくることがある!

別の選択肢としてVivlistyleが注目されています。VivliostyleはCSS組版と呼ばれる、LaTeXとはまた違った仕組みで組版を行うものです。最近はMarkdownで原稿を書けるということもあって、人気が出てきているようです。

僕は最近はよく親方Projectの合同誌に寄稿していて、親方ProjectではRe:VIEWを使い続けています。

一時期は、僕が作成したeasybooksというMarkdownをRe:VIEWに変換するwrapperのようなソフトを使ってたんですが、僕が様々な理由から本を出さなくなってeasybooksのメンテナンスも止まったため、Re:VIEWに戻りました。

元々「もし自分が同人誌制作に戻るなら、Vivliostyle試してみたいな」と思い続けていたことと、親方Projectで出た最新版「ワンストップ!学び」本に、AIを駆使して短期間で5章40ページもの原稿を、寄稿したときに、Re:VIEW記法に苦しんだこともあって、親方ProjectでVivliostyleを本格的に使いたい!と叫んでしました。

よくよく考えれば、親方Projectで採用するまえに、自分で見本を作ればいいわけです。最初に考えていたのは印刷見本みたいな本です。Re:VIEWバージョンと同じような見た目が実現できればいいやと思っていたのです。

Vivliostyleには公式テーマファイルというものがあり、その中に技術書向けのものがあり、最初はそこからスタートしました。もちろんそれは悪くはないんですが、Re:VIEWバージョンと色々違うよなーと思ってしまいました。

CSSをいじり、hackをし、親方Projectの合同誌をRe:VIEWバージョンで作ったときと同じような装丁ができあがってきました。

途中から「あれ?別に印刷見本じゃなくて、ちゃんとした本でよくない?」という当たり前の事実に気づいて、僕は執筆に専念するようになり、僕よりもCSS力・デザイン力が圧倒的に高い、もっとさんがテーマをいじってくれるようになりました。

親方氏の寄稿とかも経て、無事1/21に入稿できました。

大変でしたね。冬コミ直後に思いつきで叫んだあと作り始めてたんですから、実質三週間程度ですよ。褒めてください。僕たちの自己肯定感を上げるのに協力してください!!!

まぁ、残念ながら着手できなかったことも多く、

  • テーマがぐちゃぐちゃなので、リファクタリングしてnpmパッケージ登録したい

  • テーマをいじるための知見を本に記したい

  • Vivliostyleの、目次生成に関する知見を本に記したい

  • AIの活用に関してもっと掘り下げたい

  • GitHub Actionsの説明

  • リファレンス系をなんとかする。Re:VIEWでは `@<chapref>{xxx}` で別の章の番号や名前を参照可能です。図表なども参照可能です。これらのリファレンス機能はとても便利なため、なんとかして再現したいものです。一部、図や表に関してのみ参照する方法はあるようですが…。

  • 結構色々なhackをしているのでそれに対処する

  • Mermaidに完全敗北したので、再トライする

  • フォント周りの問題がまだ未解決

  • コラムの先頭に手動で無理矢理全角スペースをいれないといけない問題

みたいな課題が残っていたりはするんですが、三週間で書いた本なら悪くないと思います。少なくとも、本来の目的である「Markdownでお手軽に高品質な技術同人誌を出す方法」を実践し、印刷された形で伝えるというものを達成できています。

僕たちの試みによって、技術同人誌を、今まで以上にお手軽かつ、高品質に出すことが当たり前になれば幸いです。

1/25(土曜日)は横浜産貿ホール マリネリア技書博11(第十一回技術書同人誌博覧会)ですよ!是非足を運んでみてください。たぶん今回も個性豊かで様々な知見に満ちあふれた技術同人誌に出会えることでしょう。

いいなと思ったら応援しよう!