macOS High Sierra のヒラギノフォント

macOS High Sierra のヒラギノフォント

- aminophen の投稿
返信数: 20
macOS High Sierra が正式公開された,と話題なのですが,
High Sierra では
* ヒラギノフォントのファイル名が変わった
ことで,kanji-config-updmap(-sys) および pxchfon ともに
「hiragino(-pron)」「hiragino-elcapitan(-pron)」
の機能が使えなくなってしまいます。
まだ texjporg の内部で対応策を検討中の段階で,間に合っていません。

「ヒラギノフォントを使いたい」というユーザは
macOS High Sierra への更新を控えてください。

もし,すでにアップデートしてしまった場合は,
(自分で手作業でヒラギノをセットアップする方法がわかる方以外は)
「ipaex」フォントを使うなどして凌ぐ必要があるでしょう。
aminophen への返信

Re: macOS High Sierra のヒラギノフォント

- aminophen の投稿
El Capitan が出たときに受けた質問と同じことが起きそうなので,先に追記しておきます:

* 美文書第7版の付属インストーラも High Sierra のヒラギノフォントの名前を「知らない」ので,
仮にインストーラを使ったとしてもヒラギノを使えるようにはなりません。
(今後更新があればサポートページに情報が出るのだと思います。)
aminophen への返信

Re: macOS High Sierra のヒラギノフォント

- H.Ogawa の投稿
私もうっかり知らずにアップデートしてしまいました。ファイル名(ヒラギノ明朝 ProN,ttc)とファイルサイズをみると、明朝だけ(ウェイトが二つだけだからか)W3とW6とを、ひとつのファイルにまとめちゃったみたいですね。角ゴシックはシンボリックリンクが全部生きてます。丸ゴシックは単純にファイル名だけ変更されたのでしょうかね。

ともかく、続報待ちます。
H.Ogawa への返信

Re: macOS High Sierra のヒラギノフォント

- H.Ogawa の投稿
ヒラギノ明朝W-3はヒラギノ明朝 ProN,ttcのシンボリックリンクをHiraginoSerif.ttcという名前で作って、

hminl-h H :0:HiraginoSerif.ttc %!PS HiraMinProN-W3

と、単純にHiraginoSerif-W3.ttcの記述を置き換えるだけで使えました。が、W6の方のグリフを引っ張り出す記述がわからないでいます。

丸ゴシックの方は、単純にシンボリックリンクを張り直すだけで通ります。私の配っているパッケージの場合は、Sierraまでと共存させなければならないので、ファイル名は試しにHiraginoSansR-highsierra-W4.ttcという名前にしてみましたが。

議論の方は、いまどうなってますでしょうか。ここを見ればよい、というのがありましたら、ご教示いただければ幸いです。
H.Ogawa への返信

Re: macOS High Sierra のヒラギノフォント

- aminophen の投稿

> 議論の方は、いまどうなってますでしょうか。

> ここを見ればよい、というのがありましたら、ご教示いただければ幸いです。

https://github.com/texjporg/cjk-gs-support/issues/26

です。方向性はほぼ未定ですので,鵜呑みにしないでいただくことを前提にすると:

  • cjk-gs-integrate スクリプト用に High Sierra 向けのデータベースを新作
  • hiragino-highsierra というフォントセットを ptex-fontmaps に新設
    (これで kanji-config-updmap(-sys) を使えるようになる)

とかでしょうか。ただし,これを TeX Live の一般配布物に含めることには個人的には消極的です。

というのも,TeX Live は Mac ユーザだけのためのものではないので

  • 「non-free な OS のためのサポートファイル」が TeX Live に入ることを快く思わない人も一定数いる
  • 今後もこのような Mac の非互換な変更が生じる可能性は十分あり,その都度
    texjporg が開発する → TeX Live の中の人が取り込んでくれるのを待つ
    というタイムラグが生じるよりは,独自の配布ルートを作った方が良いのではないか

という思いもあるからです。

(もちろん,小川さんの UpTeX.app のようなものに標準で含めていただくのは賛成です。)

aminophen への返信

Re: macOS High Sierra のヒラギノフォント

- H.Ogawa の投稿
ご教示ありがとうございます。
確かに、ここのところの仕様変更の頻繁さは、Freeのソフトウェア側がフォローしてあげる義理はないレヴェルですね。私のパッケージではひとまず、texmf-localに新しいシンボリックリンクとHigh Sierra用のmapを入れて、これをアプリの環境設定にも追加して、独自対処してみます。試行錯誤してみたところ、一応、動くものになったようですが

0:HiraginoSerif.ttc %!PS HiraMinProN-W3
1:HiraginoSerif.ttc %!PS HiraMinPro-W3
2:HiraginoSerif.ttc %!PS HiraMinProN-W6
3:HiraginoSerif.ttc %!PS HiraMinPro-W6

で間違ってないでしょうか。
H.Ogawa への返信

Re: macOS High Sierra のヒラギノフォント

- aminophen の投稿
> 試行錯誤してみたところ、一応、動くものになったようですが
> ...
> で間違ってないでしょうか。

はい,合っていると思います。
私はテストできる環境を持っていないのですが,ptex-fontmaps の方も

https://github.com/texjporg/jfontmaps/commit/787cf680b78de3c7fa97e9d583646f171f374570

で highsierra セットを作ってみました。
aminophen への返信

Re: macOS High Sierra のヒラギノフォント

- H.Ogawa の投稿
ありがとうございます。参考にさせていただきました。あらかじめフォントのシンボリックリンクを準備しておいて、El Capitan/SierraとHigh Sierraとに同時に対応させようとすると、上に書いたように丸ゴシックはシンボリックリンクのファイル名を変えないとならないのが、エレガントでないですね。が、ひとまず対応品ができたので、明日(もう日付変わったので今日ですが…)出勤したら、サーバーに上げておきます(職場のセキュリティがヘンチクリンで、外部からftpでアクセスできないようにされてしまったので)。
H.Ogawa への返信

Re: macOS High Sierra のヒラギノフォント

- aminophen の投稿
> あらかじめフォントのシンボリックリンクを準備しておいて、
> El Capitan/SierraとHigh Sierraとに同時に対応させようとすると、上に書いたように
> 丸ゴシックはシンボリックリンクのファイル名を変えないとならない

なるほど。texjporg が想定している方法は,リンクをあらかじめ準備しておくのではなく
「スクリプトを用意して,それをユーザの方々に各自実行してもらってリンクを作る」
という方向性なので,そこまでは考えが至っていませんでした。確かに,UpTeX.app の場合だと
仰る通りリンクのファイル名を変えないといけないわけですね。

対応品のアップロード,楽しみにしております。また,参考にさせていただきます。
aminophen への返信

Re: macOS High Sierra のヒラギノフォント

- H.Ogawa の投稿
UpTeX.appでも、初回起動時やフォント変更時に動的にリンクを張り直す方がエレガントとは思いますが、誤動作の危険や、私自身のスキルを考えると、踏み切れないです。

ところで、Mac OS XにヒラギノOTFがバンドルされたことが、UTF/OTFパッケージの登場を促し、pTeXの日本語環境の向上に寄与した過程を直接目にしてた身としては、mac OSの日本語フォントのフォローには思い入れがあります。しかし特定の商用デヴァイスにこうも振り回されるのは…、というのもわかります。気力が続くうちは、その溝を埋めてなるべく簡便に環境を用意する作業は続けようと思いますが、ちょっと息切れ気味です。
aminophen への返信

Re: macOS High Sierra のヒラギノフォント

- 柏崎 礼生 の投稿
自力解決できないのに High Sierra 化してしまった愚か者です。

Qiita の投稿に従って作業をしてみたのですが、
https://qiita.com/osamu620/items/8a299e44d087542e29a9

日本語を含まないものについては問題がございませんが、
% cat test.tex
\documentclass[11pt,uplatex]{jsarticle}
\begin{document}
hoge
%ほげ
\end{document}

% uplatex test
This is e-upTeX, Version 3.14159265-p3.7.1-u1.22-161114-2.6 (utf8.uptex) (TeX Live 2017) (preloaded format=uplatex)
restricted \write18 enabled.
entering extended mode
(./test.tex
pLaTeX2e <2017/09/26u01> (based on LaTeX2e <2017-04-15>)
Babel <3.13> and hyphenation patterns for 84 language(s) loaded.
(/usr/local/texlive/2016/texmf-dist/tex/platex/jsclasses/jsarticle.cls
Document Class: jsarticle 2017/09/03 jsclasses (okumura, texjporg)
(/usr/local/texlive/2016/texmf-dist/tex/platex/jsclasses/jslogo.sty))
(./test.aux) [1] (./test.aux) )
Output written on test.dvi (1 page, 216 bytes).
Transcript written on test.log.
% dvipdfmx test
test -> test.pdf
[1]
1997 bytes written

日本語を含むものについてはこのとおり…。
% vim test.tex
% cat test.tex
\documentclass[11pt,uplatex]{jsarticle}
\begin{document}
%hoge
ほげ
\end{document}

% dvipdfmx test
test -> test.pdf
[1
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 0+555/600 --dpi 555 uprml-h
mktexpk: don't know how to create bitmap font for uprml-h.
mktexpk: perhaps uprml-h is missing from the map file.
kpathsea: Appending font creation commands to missfont.log.

dvipdfmx:warning: Could not locate a virtual/physical font for TFM "uprml-h".
dvipdfmx:warning: >> There are no valid font mapping entry for this font.
dvipdfmx:warning: >> Font file name "uprml-h" was assumed but failed to locate that font.
dvipdfmx:fatal: Cannot proceed without .vf or "physical" font for PDF output...

Output file removed.

解決のためにどのような情報を提供すれば良いでしょう。
柏崎 礼生 への返信

Re: macOS High Sierra のヒラギノフォント

- 飯島 徹 の投稿
TeXとフォント>フォントを変えてみる(日本語フォント)
https://texwiki.texjp.org/?cmd=read&page=TeX%E3%81%A8%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88&word=mac%20%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%20%E5%9F%8B%E3%82%81%E8%BE%BC%E3%81%BF%20ipa#q1b5e62f

を参考にとりあえず IPAex などに埋め込むフォントを変更してはどうでしょうか?
柏崎 礼生 への返信

Re: macOS High Sierra のヒラギノフォント

- 渡邊 修 の投稿
ログを拝見しますと
(./test.tex
pLaTeX2e <2017/09/26u01> (based on LaTeX2e <2017-04-15>)
Babel <3.13> and hyphenation patterns for 84 language(s) loaded.
(/usr/local/texlive/2016/texmf-dist/tex/platex/jsclasses/jsarticle.cls
Document Class: jsarticle 2017/09/03 jsclasses (okumura, texjporg)
(/usr/local/texlive/2016/texmf-dist/tex/platex/jsclasses/jslogo.sty))
(./test.aux) [1] (./test.aux) )

と,2016のパスが出ていますが,2017と2016が混在してしまっていませんか?

柏崎 礼生 への返信

Re: macOS High Sierra のヒラギノフォント

- Seki Motoki の投稿
texjporgのdevの方々の尽力によって,未だリリースはされていないものの
スクリプト自体はできあがっているようで,
GitHub repositoryから直接cloneすることでHigh Sierraでの
ヒラギノ埋め込みに成功したので,一応方法を共有しておきます.

非公式なので,ご自分の責任において作業をして下さい.
簡単なターミナル作業ができることは前提条件としておきます.

まず,適当なディレクトリでcjk-gs-supportjfontmapsのリポジトリをcloneします.

$ git clone https://github.com/texjporg/cjk-gs-support.git
$ git clone https://github.com/texjporg/jfontmaps.git

続いて,cjk-gs-supportの方のディレクトリに入って,次のコマンドを実行します.
パスワードを入力して適当に権限を与えて下さい.

$ cd cjk-gs-support
$ sudo ./cjk-gs-integrate.pl --link-texmf --fontdef-add=cjk-gs-integrate-highsierra.dat --force

さらに mktexlsr の後に,今度はjfontmapsの方のディレクトリに入って,
フォントマップへのシンボリックリンクを作成した後,次のコマンドを実行して下さい.

$ sudo mktexlsr
$ cd ../jfontmaps/script
$ ln -s ../maps/hiragino-highsierra-pron/ptex-hiragino-highsierra-pron.map ptex-hiragino-highsierra-pron.map
$ sudo ./kanji-config-updmap-sys.sh hiragino-highsierra-pron

以上でTeXファイルをコンパイルすることでヒラギノフォントを埋め込めるはずです.
正式にリリースが行われるまでの対処療法的方法ですが,お役に立てば幸いです.
もし誤りがありましたら訂正していただけると嬉しいです.
(特に最後のコマンドはシンボリックリンクの代わりにオプションで対応できる気がしますが,
オプションを見つけることができませんでした)
よろしくお願いします.
Seki Motoki への返信

Re: macOS High Sierra のヒラギノフォント

- aminophen の投稿
本コメントでの私の発言は非公式ということでお願いします。

Seki Motoki さんの方法でほぼ ok です。一点だけ

> 今度はjfontmapsの方のディレクトリに入って,
> フォントマップへのシンボリックリンクを作成した後,

ここはシンボリックリンクではなく,単純に maps/ 以下のファイルを
TEXMFLOCAL などの TEXMF ツリー以下の適切な場所に配置する
のがよいでしょう。(ptex- で始まる map だけを symlink しても,
uptex- や otf- のマップは見つからなくなるため,おっしゃる方法で
kanji-config-updmap-sys を実行しても uplatex 向け・otf パッケージ向けの
設定が完了しない,という不完全な設定ができてしまっているはず。)

インストールの方法:お好みに合わせて jfontmaps の Makefile 一行目の TEXMF を
書き換えて(特に書き換えずそのままでも可)
$ sudo make install
してから
$ sudo mktexlsr
を実行する。

あとは
$ sudo ./kanji-config-updmap-sys.sh hiragino-highsierra-pron
でいけると思います。そういうわけで

> 特に最後のコマンドはシンボリックリンクの代わりにオプションで対応できる気がしますが,
> オプションを見つけることができませんでした
特に sh や perl のスクリプトにオプションがあるわけではなく,
インストールするのが良い,と回答しておきます。

====

公式リリースについては,まだ逡巡しています。
(というより,タイミングを見計らっています)
High Sierra 用のメソッドはとりあえず完成していますが,これをリリースすると
同時に,**El Capitan / Sierra が標準サポートから消える**ことに
なりますので,従来の解説記事は使えなくなってしまう見込みです。
その辺りについてきちんと説明する準備が整うまでは,High Sierra サポートは
公式としては出せないという事情をご了承ください。
aminophen への返信

Re: macOS High Sierra のヒラギノフォント

- KUROKI Yusuke の投稿
(開発者用コメント)
uname でバージョン番号を取れて,条件分岐させられたり,といった仕組みはtexmfツリーにはないんですよね(?).これだけフォント周りがコロコロ変わるシステムを相手にしないといけないなら,TeX上流くらいのレベルで対応できるかどうかリクエストを投げてもいいかもしれませんね.
%%% 最近話を追えていないので,的外れでしたらごめんなさい.
KUROKI Yusuke への返信

Re: macOS High Sierra のヒラギノフォント

- aminophen の投稿
(開発者用コメント)
texmf ツリーにはバージョン番号のような仕組みはないですね。

> TeX上流くらいのレベルで対応できるかどうかリクエストを投げても

どういう方向かにもよりますが,

> フォント周りがコロコロ変わるシステムを相手にしないといけない

だけがモチベーションなら難しいのではと思います。
(そういうのってほとんど proprietary ばかりな気がする)

# cjk-gs も「クロスプラットフォームな Ghostscript の設定ツール」が主眼なはずなので,
OS-specific なコードは極力入れないように注意しています。
今回 High Sierra 対応でお使いいただいている --fontdef-add オプションは先月実装したばかり
ですが,これは「macOS に限らずどこでも役に立つはずの機能だと思ったから実装した」という
気持ちです。そういう提案ができるならば,上流へのリクエストも考えてもいいかな,とは思います。
aminophen への返信

Re: macOS High Sierra のヒラギノフォント

- KUROKI Yusuke の投稿
(開発者用コメント)
tlgs-win32 では苦し紛れなことをいろいろしていますが,(あれは現実的には有用だけれど)開発方針とは食い違っていると言われれば,まあそうですね.また忘れておきます.
Seki Motoki への返信

Re: macOS High Sierra のヒラギノフォント

- Seki Motoki の投稿
https://okumuralab.org/tex/mod/forum/discuss.php?d=2295
にも書きましたが,現在この方法はうまくいかないようです.
時間ができ次第なんとかできるか試してみたいと思いますが,
基本的には「公式の」サポートをまち,それまではIPAexを埋め込むのがよいかと思います.
Seki Motoki への返信

Re: macOS High Sierra のヒラギノフォント

- Z. R. の投稿

このSeki Motokiさんの方法そのものについては、大きな問題があります。

「カレントにマップファイル(hiragino-XXX.map)があることに依存してkanji-config-updmapを呼び出す」という方法の場合、そのときはいいですが、あとになって、「カレントにマップファイルがない」状態でupdmapが呼び出されたときに、マップファイルが見つからないので失敗してしまいます。

※kanji-config-updmapだけでなくてupdmapも問題であることに注意。そして、tlmgrでの自動更新の際には一般的にupdmapが自動的に呼び出されます。

もちろん、これについては既に

ここはシンボリックリンクではなく,単純に maps/ 以下のファイルを
TEXMFLOCAL などの TEXMF ツリー以下の適切な場所に配置する のがよいでしょう。

という指摘があり、この修正を入れた手順を使っているならば、ここで述べている問題は起こらないはずです。