0
0

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 1 year has passed since last update.

GitHubのPDFプレビューで(u)platex+dvipdfmxでコンパイルしたPDFの日本語が表示されない→unicodeのフォントを使う

Last updated at Posted at 2022-07-06

【追記】解決しました

この記事の投稿後、GitHubのサポートに問い合わせたところ対応していただきました。
2022年7月19日現在この問題は解決され、日本語の一部フォントも表示されるようになっています。

下記の記事は、もしまたGitHubが日本語表示できなくなったときのために保存しておきます。

TL;DR

unicodeのフォントを使う。フォントをtexから見れる場所において

\documentclass[uplatex]{jsarticle}
\usepackage[noto-jp]{pxchfon}

GitHubのPDF表示で日本語が表示されない

されません。:sob:
image.png

まずは、コンソールからエラーを見る。
image.png

pdf.jsでよくあるエラーのよう。Adobe-Japan1のグリフ集合使うフォントに関して、マッピングを行うファイルが設定されていないときに起きる。
PDF.jsでnullAdobe-Japan1-UCS2/ null90ms-RKSJ-Hのエラーが発生する[解決方法] - プチモンテ

GitHubさん、対応お願いします。1

じゃあどうする?

泣いていても仕方ないので、できることをする。
wordやlualatex等でpdfを作成した人はこのpdfが表示されない問題に(おそらく)ハマっていないと思う。私はplatex+dvipdfmxで表示されない問題に遭遇した。

まず悲報だが、platexでこれに対応するのは(多分)無理。理由はplatexがunicodeに対応していないため。unicodeに対応したplatexの拡張がuplatexなため、uplatexならなんとかなる。

以下にフォントの設定方法を載せる。

upLaTeX文書で源ノ明朝/Noto Serif CJKを簡単に使う方法(最新のdvipdfmxとpxchfonを使用)- Qiita
上記の記事を パクった 参考にした。より詳しく、もっと色々なフォントを扱いたい人はそちらを読んでほしい。

上記の記事にあるように、以下は TeX Live 2018以降で、upLaTeX+dvipdfmx が前提となる。

uplatexでフォント設定

(u)platexの漢字のデフォルトフォントは原ノ味フォント2で、これを指定するとunicodeにならない3ため、ここを何とかする必要がある。

まずフォントのインストールから。NotoSans/SerifJP4を使おう。リンク先、右上の「Download family」を押してダウンロードする。NotoSansJP NotoSerifJP

zipを展開したら全てのデータをフォルダ

$(kpsewhich -var-value=TEXMFLOCAL)/fonts/opentype/google/noto-jp

に置く。例えばこんな感じ

mkdir -p $(kpsewhich -var-value=TEXMFLOCAL)/fonts/opentype/google/noto-jp
mv NotoSans* $(kpsewhich -var-value=TEXMFLOCAL)/fonts/opentype/google/noto-jp
mv NotoSerif* $(kpsewhich -var-value=TEXMFLOCAL)/fonts/opentype/google/noto-jp

これができたらpathのアップデート。

sudo mktexlsr

これでtexがフォントを認識してくれるはず。確認のコマンド

kpsewhich NotoSansJP-Medium.otf
kpsewhich NotoSerifJP-Medium.otf

何かしらのパスが返ってきたら成功。パスが表示されない場合はどこかうまくいってない。5

あと少し

texのpreambleに以下を追加

\usepackage[noto-jp]{pxchfon}

あとは uplatex + dvipdfmx6でpdf作成で完成。お疲れさまでした。
pdffonts7で実際にUnicodeになっているか確認しておく。

> pdffonts paper.pdf
name                                           type              emb sub uni prob object ID
---------------------------------------------- ----------------- --- --- --- ---- ---------
YQESZK+NotoSansJP-Medium-Identity-H            CID Type 0C       yes yes yes           4  0
KBDWKX+CMBX12                                  Type 1C           yes yes yes           6  0
WENJYO+NotoSerifJP-Regular-Identity-H          CID Type 0C       yes yes yes           7  0
CQRHTT+CMR12                                   Type 1C           yes yes yes           9  0
OENMMA+CMSS12                                  Type 1C           yes yes yes          10  0
CDOPTV+CMR10                                   Type 1C           yes yes yes          11  0
QLYEDB+CMMI10                                  Type 1C           yes yes yes          12  0
JNPXGZ+CMMI7                                   Type 1C           yes yes yes          13  0
FDDGUS+CMSY10                                  Type 1C           yes yes yes          14  0
JYFWDF+CMMIB10                                 Type 1C           yes yes yes          15  0
IZSNPK+CMSY7                                   Type 1C           yes yes yes          16  0
OSSUPZ+CMMI5                                   Type 1C           yes yes yes          17  0
FORUBY+CMR7                                    Type 1C           yes yes yes          18  0
UCJFOG+CMEX10                                  Type 1C           yes yes yes          19  0
QXNNBF+CMBX10                                  Type 1C           yes yes yes          20  0
HAKSWU+SFRM1000                                Type 1C           yes yes yes          21  0

確かにuniの欄がyesになっている。

GitHubから確認

pushしたものを確認する
image.png

確かに日本語になっている。
表示される例、表示されない例をGitHubに置いておいた。参考になれば幸い。
https://github.com/shunshunNi/sample_unicode_uplatex

  1. こないだまで見れていた。おそらくアップデートかなにかのタイミングで消してしまった?どうやらたまに発生するバグのようで、2021年にもバグの報告が上がっている。Hiragino Japanese fonts can not view pdf files - GitHub Community Forum

  2. kanji-config-updmap-sys statusをターミナルで叩くと確認できる

  3. 嘘。例えばlualatexで何も考えずに実行した場合フォントは原ノ味になるが、この場合は原ノ味がunicode対応しているためGitHub上で問題なく表示される。platexは無理だが、uplatexならフォントマップをいじればおそらく対応できると考えられる。

  4. 原ノ味は源ノフォントをもとに作られていて、源ノフォントはNotoSansとほぼ一緒らしい。原ノ味フォント - TeX Wiki / 源ノフォント - TeX Wiki

  5. TEXMFLOCALがない。mkdirのpオプションの忘れ。フォントファイルの移動の失敗。mktexlsrの実行の際のsudo忘れ。などが考えられるか。

  6. documentclassをuplatexに対応させるのを忘れずに

  7. xpdfに付随するコマンド。macならbrew install xpdfとすると実行できるようになる

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?