【追記】解決しました
この記事の投稿後、GitHubのサポートに問い合わせたところ対応していただきました。
2022年7月19日現在この問題は解決され、日本語の一部フォントも表示されるようになっています。
下記の記事は、もしまたGitHubが日本語表示できなくなったときのために保存しておきます。
TL;DR
unicodeのフォントを使う。フォントをtexから見れる場所において
\documentclass[uplatex]{jsarticle}
\usepackage[noto-jp]{pxchfon}
GitHubのPDF表示で日本語が表示されない
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から確認
確かに日本語になっている。
表示される例、表示されない例をGitHubに置いておいた。参考になれば幸い。
https://github.com/shunshunNi/sample_unicode_uplatex
-
こないだまで見れていた。おそらくアップデートかなにかのタイミングで消してしまった?どうやらたまに発生するバグのようで、2021年にもバグの報告が上がっている。Hiragino Japanese fonts can not view pdf files - GitHub Community Forum ↩
-
kanji-config-updmap-sys status
をターミナルで叩くと確認できる ↩ -
嘘。例えばlualatexで何も考えずに実行した場合フォントは原ノ味になるが、この場合は原ノ味がunicode対応しているためGitHub上で問題なく表示される。platexは無理だが、uplatexならフォントマップをいじればおそらく対応できると考えられる。 ↩
-
原ノ味は源ノフォントをもとに作られていて、源ノフォントはNotoSansとほぼ一緒らしい。原ノ味フォント - TeX Wiki / 源ノフォント - TeX Wiki ↩
-
TEXMFLOCALがない。mkdirのpオプションの忘れ。フォントファイルの移動の失敗。mktexlsrの実行の際のsudo忘れ。などが考えられるか。 ↩
-
documentclassをuplatexに対応させるのを忘れずに ↩
-
xpdfに付随するコマンド。macなら
brew install xpdf
とすると実行できるようになる ↩