8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-11-21

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 コマンドを実行しているターミナルソフトを再起動すると良いようです。

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

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?