続・LaTeXでシナリオ同人誌:XeLaTeXかLuaLaTeXか

※この記事は、実は2023年3月に執筆されていたのですが、筆者が面倒臭がって公開されていませんでした。ですので、情報が古い可能性があります。

この記事のまとめ

  • XeLaTeXはコンパイルが早いが、LuaLaTeXの方が日本語組版にばっちり対応しているっぽい。

  • OverLeafのXeLaTeXからCloud LaTeXのLuaLaTeXに環境を移行した。

最初の一歩は高い壁

LaTeXに限らず、とりあえず環境構築をするにあたって、「何を使えばよいのか」というのは、一番最初につまづく問題である気がします。
一口にLaTeXと言っても、エンジンは多種多様。pLaTeX、upLaTeX、pdfLaTeX、XeLaTeX、LuaLaTeX……多くない!?

一区切りのついでに、今さらながら、どのエンジンを使えばよいのかを再検討してみることにしました。

一番スタンダードな「pLaTeX + dvipdfmx」は、噂によるとぼちぼちレガシー環境になる様子。
XeLaTeXLuaLaTeXは日本語フォントの扱いがとても楽になるので、この二つのどちらかを選べば間違いがなさそうです。

XeLaTeXか、LuaLaTeXか?

昔の記事を読むに、私はどうやら元々LuaLaTeXを使っていたようなのですが、今はXeLaTeXに移行しています。
これは、シナリオ集を作ろうとした結果です。シナリオを複数集めてPDFにしているわけですから、当然ページ数は多くなります。
そして……LuaLaTeXで「表紙画像込み、A5サイズ45ページ、Tikzを使ったフラクタル図形描画あり」なんてやろうものなら、コンパイル時間がハチャメチャに長くなってしまうのです!
待つのは得意と自負する私ですが、OverLeafの無料アカウントではコンパイル時間に制限があります。コンパイルに時間がかかるファイルは出力してくれません。
そこで、なんかコンパイル時間が短いらしいXeLaTeXを使い、さらに、シナリオごとに個別にPDF出力したものを後から結合して一つのPDFにする力業で何とか解決していました。

では、結局のところ、XeLaTeXとLuaLaTeXはどっちがいいのか?
ざっくり調べてみたのですが、きのこたけのこ戦争に似た様相を呈しているように見えます。

  • XeLaTeX派の意見:LuaLaTeXはコンパイルが重い。(私もそう思う)

  • LuaLaTeX派の意見:XeLaTeXはまともな日本語組版ができない

……えっそこまで言う!?

比較してみた

というわけで、実際にどうなのか確認してみました。
私の同人誌の冒頭をコンパイルし直してみた結果がこちら。

XeLaTeXで出力したもの
LuaLaTeXで出力したもの

おわかりいただけたでしょうか。

文頭で「ィ」や「ッ」などの小文字が来ないように調整されています!
今まで実装に必死であまり気にしていませんでしたが、確かにこれは日本語組版の基本ってやつですね。字下げ忘れは単にケアレスミスなので後でこっそり直しておきます。
あと、geometryでどうしても発生していた謎のズレがついでに解消されている……気がする。

一度気づいてしまえば、きちんとしていないのは気になってしまうもの。
こんなのLuaLaTeXを使うしかないじゃない。
ならば……どうにか高速化してLuaLaTeXを使えるようにするしかない!

高速化への試み

結論から申し上げますと……何の成果も得られませんでした

とりあえずローカル環境を構築してみたり、キャッシュ作成によるコンパイル負荷低減を試行錯誤してみたりしましたが、納得のいく結果にはならなかったのです。
プリアンブルをキャッシュすれば高速化できる、それはそうなるはずなんですが、実装しようとするとなかなかにややこしい。
さりとて、それが無理ならエンジンに直接手を入れる方法になります。

深掘りすればするほど「こんなの個人でやる領分じゃないよ……スーパーエンジニア集団とか企業とかが本腰入れて対処するような問題だよ……」という感情が増していきます。
私に力(高い技術力もしくは5000兆円)さえあれば……。

技術系の記事を掘り起こすのに疲れ、Twitterを検索して見つけたのがこちらのツイート。

やってくれてる企業が、あった!?

Cloud LaTeXを使う

実は、最初にLaTeXを使い始めた時点でCloud LaTeXは候補に入っていました。

完全日本語対応していそうなCloud LaTeXを使いたかったのですが、アカリクが運営していることもあり、趣味では使えなさそうな雰囲気だった(アカウント登録に勤務先の情報が必須)ので、こちらのOverLeafを使用。

小牟田コウタ「TRPGシナリオ集を作るためにLaTeXと再婚するかもしれない」より

当時は上記のような理由でOverLeafの方を選択したのですが、最近になってCloud LaTeXには小説用テンプレートも追加され、趣味でもウェルカムな雰囲気を感じます。たぶん。
それならば使わない手はありません。

同人誌作成を目的にしたCloud LaTeXの導入に関しては、既に詳しい記事を書いてくださっている先人がおられます。以下の記事を参考にさせていただきました。

横書きで同人誌を書く民にとっては、縦書きの小説同人誌より設定は楽に済みます(私が作らんとしているTRPGシナリオ本というジャンルは、公式で出版されているものも含め横書きが多い印象です)。

OverLeaf上からダウンロードしたデータを、CloudLaTeXにアップロードして、コンパイル!

しばらく待ったのち、無事PDFプレビューに実行結果が出力されました

なんと、45ページ分を一気にPDF出力しても平気です!

とはいえ、重いファイルでも快適なほど速いわけではありません。
章ごとにファイルをわけておき、入力・修正をする段階では個別にデバッグし、全体をコンパイルするのは最後にしておくのがよさそうです。
あんまり無茶をしまくると怒られるかもしれませんし……。

そんなこんなで、Cloud LaTeXへと環境移行して制作を続けることにしました。

この記事が気に入ったらサポートをしてみませんか?