asciidoctor-fopubで生成されるPDFの"Table of Contents"などを日本語化する

  • 23
    いいね
  • 3
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

以前asciidoctorで日本語の本文とPlantUMLのクラス図が入った文書をPDFに変換してみた - Qiita
日本語の本文をPDF化する方法についてで書いた方法で本文では日本語が使えるようになりますが、自動生成される目次のタイトルは"Table of Contents"、図目次のタイトルは"List of Figures"のように英語になっていました。

asciidoctor/asciidoctor-fopubはプロジェクトの説明に

A portable DocBook-to-PDF build command that wraps DocBook XSL and Apache FOP

とあるとおり、バックエンドにDocBook XSLとApache FOPを使用しています。

XSLTスタイルシートのカスタマイズで日本語化可能

fopub option flagsの説明を見ると -t オプションでXSLTスタイルシートを含むディレクトリを指定してスタイルシートを切り替えることができることが分かります。

asciidoctor-fopub には src/dist/docbook-xsl ディレクトリに標準のXSLTスタイルシートがバンドルされていますので、これをコピーして改変します。 fo-pdf.xsl というのがメインのファイルのようです。

ググっているとThe DocBook ProjectのDocBook releasesのdocbok-xslcommon/ja.xmlというファイルがあるのを見つけました。

あとは https://github.com/hnakamur/asciidoctor-fopub/commit/adad976219f2ee1170932597843114c19930a0c9 のように ja.xml ファイルを追加し fo-pdf.xsl

<xsl:import href="ja.xml"/> という行を追加して ja.xml を読み込むようにすればOKです。

生成したPDFの例

http://hnakamur.github.io/asciidoctor_template/embed_image_sample.pdf

asciidoctor-fopub-japanization.png