以前から発刊しているBabylon.js レシピ集の執筆には、Re:VIEWという記法を使っています。
この記法で書いたものをpdfにするとき、Re:VIEW Templateというリポジトリの中身を使用しております。
しかし、先ほど新しくリポジトリを準備したところ、なぜかGitHub Actionsでのpdfビルドに失敗しました。
暫定解決までしかしていないのですが、調べた内容を書いておきます。
解決策は本文の最後に追記しました。
- 1. TechboosterのRe:VIEWテンプレートではGitHub Actionsが失敗する
- 2. 技術書典14のGitHubリポジトリでもGitHub Actionsが失敗する
- 3. 暫定解決方法
- 4. (2023/9/1 追記) 解決方法
- 5. おわりに
1. TechboosterのRe:VIEWテンプレートではGitHub Actionsが失敗する
TechboosterのRe:VIEWテンプレートから、"Use this template"ボタンで自分のリポジトリに一通りをcloneしました。
これを自分のローカル環境にクローンしてpdfビルドすると失敗します。よくみると、TechboosterのリポジトリでもActionsで失敗していました。
2. 技術書典14のGitHubリポジトリでもGitHub Actionsが失敗する
Babylon.js レシピ集Vol.2を執筆した時のリポジトリでも、7月以降にpushでActionsのビルドが失敗していました。
3. 暫定解決方法
3.1 エラーが出ているTexの記述を修正する
ビルドが失敗すると、このようなエラーが出ます。
)) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty) ./techbooster-doujin-base.sty:56: Undefined control sequence. <argument> \captionwidth l.56 \setlength{\captionwidth}{\textwidth} No pages of output. Transcript written on _REVIEW_BOOK_.log. rake aborted! Command failed
techbooster-doujin-base.styとは、articles/styの中にあるファイルです。
%\newlength{\captionwidth} \setlength{\captionwidth}{\textwidth} \addtolength{\captionwidth}{-\captionnumwidth}
元々はこのように書いてあるのですが、コメントアウトの意味の"%"を消すと、Actionsのビルドが通るようになります。
これはここで言及されています。ただし、投稿された方も暫定解決であり正しい方法かを確認してほしい、とコメントされています。
なお、この修正をすると、私のDocker環境ではビルドが通らなくなりました。
このように、"\captionwidth"がすでに宣言されています、というエラーが出てしまいます。
./techbooster-doujin-base.sty:55: LaTeX Error: Command \captionwidth already de fined. Or name \end... illegal, see p.192 of the manual.
ただし、GitHub Actionsを使わないで自分のDockerを使ったビルドは成功します。このときのDockerイメージはvvakame/review:5.4です。
3.2 GitHub Actionsでvvakame/review:5.4を読むように修正する (失敗)
原因はわかりませんが、自分のDocker環境とバージョンを合わせればGitHub Actionsでもビルドが通るかもしれないと考えました。
そこで、リポジトリ内でRe:VIEW :5.5となっている箇所をgrepして5.4に修正しました。これにより、Actionsのログをみると、5.4をインストールする記述に変わりました。
しかし、やはり"\captionwidth"がすでに宣言されています というエラーが出てビルドが失敗しました。
3.3 技術書典14のときのDockerをそのまま使って、ローカル環境でビルドする
◾️Docker Desktopのインストール
Windows への Docker Desktop のインストール | Docker ドキュメント
Docker Desktop の Mac へのインストール | Docker ドキュメント
◾️Dockerイメージのダウンロード
$ docker pull ghcr.io/vvakame/review:5.4 (ghcrからのダウンロードの場合) $ docker pull vvakame/review:5.4 (Docker Hubからのダウンロードの場合) $ ./build-in-docker.sh
◾️Techboosterのテンプレートをcloneして、pdfビルドを実行
REVIEW_CONFIG_FILE=config-ebook.yml ./build-in-docker.sh
4. (2023/9/1 追記) 解決方法
@cx20 さんのおかげで、こちらのPRを反映させることで、ローカルDockerもGitHub Actionsでもビルドが通ることがわかりました。
5. おわりに
歯切れが悪いのですが、また新しくわかったら追記します。
ひとまず執筆環境が整ってよかったです。