Asciidoctor PDFの日本語フォントを変更する

2018/03/03

Asciidoctor PDF は標準でもそこそこ綺麗な日本語PDFが生成できます。どうやらmplus1p-regularが適用される模様。M+ FONTSですね。

このままでも悪くないんですが、フォントを変更するとどうなるか試してみましょう。

まずはフォントの調達。Asciidoctor PDFで利用できるフォントはttfだけです。 定番のNotoファミリーを使おうと思ったのですが、あいにくttf形式で提供されていないので派生フォントから選ぶことにします。ゴシックは源真ゴシック、明朝は源樣明體をチョイス。

源樣明體はNoto Serif CJK(源ノ明朝)を TrueType に変換したものです。台湾の方が作っているのかな?

続いて設定ファイルを作成します。theme.ymlという名前を付けておきます。 デフォルトのテーマをベースに必要そうなところだけ抜き出すといいかと思います。 フォント周りを抜粋するとこんな感じ。

font:
  catalog:
    Serif:
      normal: GenYoMinJP-Regular.ttf
      bold: GenYoMinJP-Bold.ttf
      italic: GenYoMinJP-Regular.ttf
      bold_italic: GenYoMinJP-Bold.ttf
    Sans Serif:
      normal: GenShinGothic-P-Regular.ttf
      bold: GenShinGothic-P-Bold.ttf
      italic: GenShinGothic-P-Regular.ttf
      bold_italic: GenShinGothic-P-Bold.ttf
  fallbacks:
    - Sans Serif

本文はdocument.adoc。attributeでテーマとフォントを設定します。 コマンドラインオプションとしても設定できるんですが、覚えるの面倒だからattributeが好みです。

:lang: ja
:doctype: article
:pdf-style: theme.yml
:pdf-fontsdir: fonts

ファイル配置はこんな感じになります。

├ document.adoc
├ theme.yml
└ fonts
  ├ GenShinGothic-P-Bold.ttf
  ├ GenShinGothic-P-Regular.ttf
  ├ GenYoMinJP-Bold.ttf
  └ GenYoMinJP-Regular.ttf

あとはPDFを生成するだけ。

F:\ asciidoctor-pdf document.adoc

まずはデフォルトフォントの場合。

デフォルトのフォント

デフォルトのフォント

続いてフォントを変更したもの。タイトル部分がゴシック、本文が明朝です。

フォント変更版

フォント変更版

やっぱり本文は明朝のほうが読みやすい。

WebだとゴシックオンリーでOKですが、印刷まで視野に入れると明朝とゴシックの使い分けをしたいですよね。用途に応じて適切なフォントを設定して使いましょう。


今回使った本文のasciidocと設定のtheme.ymlはGistにアップしておきました。 AsciiDoctor PDFで日本語フォントを変更するサンプルからどうぞ。 GistはAsciiDocをプレビュー表示しちゃうんで"Raw"で表示を切り替えてみてください。

ついでに変換後のPDFも置いておきます。




関連(するかもしれない)記事


おススメ