Help us understand the problem. What is going on with this article?

asciidoctor-pdf で日本語が化ける for Windows10

More than 1 year has passed since last update.

TL;DR

default-theme.yml にフォントフォールバックを設定するんだ!

default-theme.yml
font:
  catalog:
    # Noto Serif supports Latin, Latin-1 Supplement, Latin Extended-A, Greek, Cyrillic, Vietnamese & an assortment of symbols
    Noto Serif:
      normal: notoserif-regular-subset.ttf
      bold: notoserif-bold-subset.ttf
      italic: notoserif-italic-subset.ttf
      bold_italic: notoserif-bold_italic-subset.ttf
    # M+ 1mn supports ASCII and the circled numbers used for conums
    M+ 1mn:
      normal: mplus1mn-regular-subset.ttf
      bold: mplus1mn-bold-subset.ttf
      italic: mplus1mn-italic-subset.ttf
      bold_italic: mplus1mn-bold_italic-subset.ttf
### 以下を追記
    M+ 1p Fallback:
      normal: mplus1p-regular-fallback.ttf
      bold: mplus1p-regular-fallback.ttf
      italic: mplus1p-regular-fallback.ttf
      bold_italic: mplus1p-regular-fallback.ttf
  fallbacks:
  - M+ 1p Fallback
### ここまで
page:
(略)

解説

2019_09_Asciidocを使っていてせっかくAsciidoctor-PDF環境を構築したのに出力したPDFの日本語が表示されなくて困っている人へより引用:

結論から書くと、
「デフォルトスタイルのフォントに日本語字体が含まれていないこと」と「デフォルトスタイ ルのフォントフォールバックについての仕様変更」が原因で「Asciidoctor-PDFで出力したPDFを開くと日本語が表示されない」問題が発生する。

なお、「フォントフォールバック」とはフォントに存在しない字体を他のフォントで補うことである。

中略

Asciidoctor-PDFのdefault-theme.yml上で前述の日本語の字体を含む「mplus1p-regular-fallback」に「フォントフォールバック」する設定が残っていた最後のバージョンが2019年4月18日にリポジトリに上がっている「v1.5.0.alpha.18」である。

そしてその次のバージョンであり2019年7月8日にリポジトリ上に上がっている「v1.5.0.beta.1」で削除されている。

とあるので、削除された分を補ってやるのが今回の手法です。

環境

OS: Windows10 バージョン 1909
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.6.2
- RUBY VERSION: 2.5.5 (2019-03-15 patchlevel 157) [x64-mingw32]
asciidoctor:2.0.10
asciidoctor-pdf:1.5.0.beta.7
asciidoctor-pdf-cjk:0.1.3

手順

私の環境では、default-theme.yml がC:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\asciidoctor-pdf-1.5.0.beta.7\data\themes内にあるので、default-theme.yml をエディタで開き、記事先頭で書いた追記を行いました。

ハマリポイント

当たり前かもしれませんが、default-theme.yml を変更したら asciidoctor-pdf コマンドを実行しているターミナルソフトを再起動すると良いようです。

再起動しないと設定が反映されない? ことがあります。

hidao
岡山アイス珈琲党総帥。開発環境構築が趣味の超D級IT百姓。 「人の数だけ普通・常識・当たり前が存在する」と信じるマルチスタンダード主義者。 プライベート用アカウントです。
qiitadon
Qiitadon(β)から生まれた Qiita ユーザー・コミュニティです。
https://qiitadon.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away