6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

2020年に開催予定だった技術書典8へ向けて、技術同人誌を作成し、技術書典応援祭でのオンライン頒布をしました。
当時の職場の有志が集まって、プログラミング言語について紹介しています。

この技術同人誌の作成にあたり、技術選定や取り組んだことについて解説します。

企画立案

2019年頃、技術書典が盛り上がっていました。個人的にも同人誌文化に親しんでいたため、技術書典にもサークル参加してみたい気持ちがありました。

職場の有志を集めて、和気あいあいと取り組んでみたかったこともあり、Software Design や WEB+DB PRESS のような合同誌の形式を検討しました。

議論を重ねて、プログラミング言語を題材に執筆することを決め、申し込みに進みました。

2019年10月頃に職場にて有志を集い、11月にサークル参加を申し込みました。
サークルカットが必要だったため、有志同士のつながりでイラストレーターに依頼し、描いてもらいました。

12月15日頃に当選の連絡をいただき、本格的に執筆を始めました。

技術選定

当落発表までに、どのツールで執筆するかの技術調査をしていました。

候補として挙がっていたのは以下のとおりです。

  • LaTeX: 組版品質が高く、数式や図表の配置を細かく制御できます。私自身は使い慣れていましたが、環境構築が複雑でチームメンバーへの学習コストが高いと判断しました
  • Re:VIEW: 独自のRe:VIEW記法(Markdownに近い軽量マークアップ)で執筆でき、内部でLaTeXに変換してPDFを生成します。執筆とスタイリングの関心が分離されており、著者は Re:VIEW 記法に、編集担当はLaTeX側のスタイル調整に集中できます
  • Vivliostyle: CSSによる組版ツールで、HTMLやMarkdownから印刷用PDFを生成できます。Web技術に慣れたメンバーには馴染みやすい一方、当時は日本語縦組みや印刷向け細かい調整のノウハウが少なく、情報収集コストが高いと判断しました

Re:VIEW を選んだ理由は、著者が Markdown 類似の Re:VIEW 記法で執筆に集中でき、私がLaTeX 知識を活かしてスタイリングを担当できる、役割分担のしやすさにあります。

また、著者によっては Markdown で原稿を書いた後、md2review で Re:VIEW 記法に変換するやり方を取れることも魅力的でした。

執筆

2020年1月頃に GitHub リポジトリを作成し、各々執筆していただいたものをマージしていきました。Re:VIEW のバージョンは v4.0.0 でした。

編集として行ったことは以下のとおりです。

  • GitHub Actionsの構築: ビルドしたPDFを出力する・TextLintで静的解析する
  • スタイリング: 奥付が偶数ページになるよう調整したり、プロフィールやコードブロックのスタイリング
  • コードレビュー: 本文モノクロ印刷のため、画像がカラーだった場合はモノクロにしてもらうなどコメント
  • イラストの発注: イメージを言語化して依頼・検品し、表紙・裏表紙を設定する
  • 印刷所の選定: PDF印刷ができる印刷所をチェックし、選定する

GitHub Actions

GitHub Actions でプッシュのたびに自動ビルドし、生成された PDF を Artifacts として保存することで、レビュー時に最新の PDF をすぐ確認できる環境を整えました。当時は re-view-pdf-generator を使いました。

TextLintについては、textlint-rule-preset-ja-technical-writing を使って技術文書向けのルールを適用しました。「である調」「ですます調」の混在チェック、1文の長さ制限、二重否定の検出などを設定し、文体の統一に役立てました。

{
  "filters": {
    "whitelist": {
      "allow": [
        ...
      ]
    }
  },
  "rules": {
    "preset-ja-spacing": true,
    "preset-ja-technical-writing": {
      "ja-no-weak-phrase": false,
    },
    "spellcheck-tech-word": true,
    "ja-technical-writing/sentence-length": {
        "max": 200
    },
    "ja-technical-writing/no-exclamation-question-mark": {
        "allowHalfWidthQuestion": true,
        "allowHalfWidthExclamation": true,
    },
    "ja-technical-writing/max-kanji-continuous-len": {
      max: 6,
      allow: ["純粋関数型言語"]
    }
  },
  "plugins": [
    "review"
  ]
}

スタイリング

Re:VIEW のスタイリングはLaTeXのスタイルファイル(.sty)を編集して行います。主に対応した内容は以下のとおりです。

  • 奥付の調整: 奥付が必ず偶数ページ(左ページ)に来るよう、\clearoddpage を利用して調整1
  • コードブロック: フォントサイズや背景色の変更、行番号表示の設定
  • プロフィール: 著者アイコンと紹介文を横並びにするレイアウトをLaTeXで実装

プロフィールのスタイリングは以下のとおりです。

\newcommand{\profile}[3]{
  \begin{minipage}[]{.2\linewidth}
    \centering
    \includegraphics[width=.75\linewidth]{#1}
  \end{minipage}
  \begin{minipage}[]{.8\linewidth}
    \vspace{1ex}
    {\noindent
    {\bf 著者:#2}\\
    \rule[1.2zw]{\linewidth}{0.05zw}}\vspace{-1.5zw}
    #3
    \vspace{1ex}
  \end{minipage}
  \vspace{1ex}
}

使い方は以下のとおりで、画像のような結果となります。

//embed[latex]{
  \profile{./path/to/image.jpg}{Adacchi3(@ayata\_taguchi)}{Webエンジニア。SPARQLやオントロジーマッピングについてちょっとわかる。}
//}

スクリーンショット 2026-06-23 18.22.51.png

おわりに

技術書典8 は新型コロナウイルス感染症の影響により中止となり、技術書典応援祭でのオンライン頒布となりました。Twitter(X)にて宣伝し、多くの方にご購入いただきました。

出社が再開された後、ご協力いただいた方々には大阪印刷株式会社(おたクラブ)さんで印刷した書籍を贈呈しました。

Re:VIEW による執筆環境は、LaTeX 知識がある編集者と、Markdown 慣れした著者がコラボレーションできるバランスの取れた選択だったと思います。GitHub Actions による CI/CD を導入したことで、原稿の品質担保と最終成果物の確認が自動化でき、複数人での執筆でも混乱なく進められました。

当時は新卒1年目で自ら音頭を取り、いろいろな方を巻き込んで挑戦できた貴重な経験でした。

  1. https://review-knowledge-ja.readthedocs.io/ja/latest/faq/faq-tex.html#a341b699782c023af57ee9b293c4717f

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?