macOS High Sierra が正式公開された,と話題なのですが,
High Sierra では
* ヒラギノフォントのファイル名が変わった
ことで,kanji-config-updmap(-sys) および pxchfon ともに
「hiragino(-pron)」「hiragino-elcapitan(-pron)」
の機能が使えなくなってしまいます。
まだ texjporg の内部で対応策を検討中の段階で,間に合っていません。
「ヒラギノフォントを使いたい」というユーザは
macOS High Sierra への更新を控えてください。
もし,すでにアップデートしてしまった場合は,
(自分で手作業でヒラギノをセットアップする方法がわかる方以外は)
「ipaex」フォントを使うなどして凌ぐ必要があるでしょう。
ヒラギノ明朝W-3はヒラギノ明朝 ProN,ttcのシンボリックリンクをHiraginoSerif.ttcという名前で作って、
hminl-h H :0:HiraginoSerif.ttc %!PS HiraMinProN-W3
と、単純にHiraginoSerif-W3.ttcの記述を置き換えるだけで使えました。が、W6の方のグリフを引っ張り出す記述がわからないでいます。
丸ゴシックの方は、単純にシンボリックリンクを張り直すだけで通ります。私の配っているパッケージの場合は、Sierraまでと共存させなければならないので、ファイル名は試しにHiraginoSansR-highsierra-W4.ttcという名前にしてみましたが。
議論の方は、いまどうなってますでしょうか。ここを見ればよい、というのがありましたら、ご教示いただければ幸いです。
hminl-h H :0:HiraginoSerif.ttc %!PS HiraMinProN-W3
と、単純にHiraginoSerif-W3.ttcの記述を置き換えるだけで使えました。が、W6の方のグリフを引っ張り出す記述がわからないでいます。
丸ゴシックの方は、単純にシンボリックリンクを張り直すだけで通ります。私の配っているパッケージの場合は、Sierraまでと共存させなければならないので、ファイル名は試しにHiraginoSansR-highsierra-W4.ttcという名前にしてみましたが。
議論の方は、いまどうなってますでしょうか。ここを見ればよい、というのがありましたら、ご教示いただければ幸いです。
> 議論の方は、いまどうなってますでしょうか。
> ここを見ればよい、というのがありましたら、ご教示いただければ幸いです。
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 のようなものに標準で含めていただくのは賛成です。)
ご教示ありがとうございます。
確かに、ここのところの仕様変更の頻繁さは、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
で間違ってないでしょうか。
確かに、ここのところの仕様変更の頻繁さは、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
で間違ってないでしょうか。
> あらかじめフォントのシンボリックリンクを準備しておいて、
> El Capitan/SierraとHigh Sierraとに同時に対応させようとすると、上に書いたように
> 丸ゴシックはシンボリックリンクのファイル名を変えないとならない
なるほど。texjporg が想定している方法は,リンクをあらかじめ準備しておくのではなく
「スクリプトを用意して,それをユーザの方々に各自実行してもらってリンクを作る」
という方向性なので,そこまでは考えが至っていませんでした。確かに,UpTeX.app の場合だと
仰る通りリンクのファイル名を変えないといけないわけですね。
対応品のアップロード,楽しみにしております。また,参考にさせていただきます。
> El Capitan/SierraとHigh Sierraとに同時に対応させようとすると、上に書いたように
> 丸ゴシックはシンボリックリンクのファイル名を変えないとならない
なるほど。texjporg が想定している方法は,リンクをあらかじめ準備しておくのではなく
「スクリプトを用意して,それをユーザの方々に各自実行してもらってリンクを作る」
という方向性なので,そこまでは考えが至っていませんでした。確かに,UpTeX.app の場合だと
仰る通りリンクのファイル名を変えないといけないわけですね。
対応品のアップロード,楽しみにしております。また,参考にさせていただきます。
UpTeX.appでも、初回起動時やフォント変更時に動的にリンクを張り直す方がエレガントとは思いますが、誤動作の危険や、私自身のスキルを考えると、踏み切れないです。
ところで、Mac OS XにヒラギノOTFがバンドルされたことが、UTF/OTFパッケージの登場を促し、pTeXの日本語環境の向上に寄与した過程を直接目にしてた身としては、mac OSの日本語フォントのフォローには思い入れがあります。しかし特定の商用デヴァイスにこうも振り回されるのは…、というのもわかります。気力が続くうちは、その溝を埋めてなるべく簡便に環境を用意する作業は続けようと思いますが、ちょっと息切れ気味です。
ところで、Mac OS XにヒラギノOTFがバンドルされたことが、UTF/OTFパッケージの登場を促し、pTeXの日本語環境の向上に寄与した過程を直接目にしてた身としては、mac OSの日本語フォントのフォローには思い入れがあります。しかし特定の商用デヴァイスにこうも振り回されるのは…、というのもわかります。気力が続くうちは、その溝を埋めてなるべく簡便に環境を用意する作業は続けようと思いますが、ちょっと息切れ気味です。
自力解決できないのに 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.
解決のためにどのような情報を提供すれば良いでしょう。
ログを拝見しますと
(./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が混在してしまっていませんか?
texjporgのdevの方々の尽力によって,未だリリースはされていないものの
スクリプト自体はできあがっているようで,
GitHub repositoryから直接cloneすることでHigh Sierraでの
ヒラギノ埋め込みに成功したので,一応方法を共有しておきます.
非公式なので,ご自分の責任において作業をして下さい.
簡単なターミナル作業ができることは前提条件としておきます.
まず,適当なディレクトリでcjk-gs-supportとjfontmapsのリポジトリを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 さんの方法でほぼ 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 サポートは
公式としては出せないという事情をご了承ください。
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 サポートは
公式としては出せないという事情をご了承ください。
(開発者用コメント)
texmf ツリーにはバージョン番号のような仕組みはないですね。
> TeX上流くらいのレベルで対応できるかどうかリクエストを投げても
どういう方向かにもよりますが,
> フォント周りがコロコロ変わるシステムを相手にしないといけない
だけがモチベーションなら難しいのではと思います。
(そういうのってほとんど proprietary ばかりな気がする)
# cjk-gs も「クロスプラットフォームな Ghostscript の設定ツール」が主眼なはずなので,
OS-specific なコードは極力入れないように注意しています。
今回 High Sierra 対応でお使いいただいている --fontdef-add オプションは先月実装したばかり
ですが,これは「macOS に限らずどこでも役に立つはずの機能だと思ったから実装した」という
気持ちです。そういう提案ができるならば,上流へのリクエストも考えてもいいかな,とは思います。
texmf ツリーにはバージョン番号のような仕組みはないですね。
> TeX上流くらいのレベルで対応できるかどうかリクエストを投げても
どういう方向かにもよりますが,
> フォント周りがコロコロ変わるシステムを相手にしないといけない
だけがモチベーションなら難しいのではと思います。
(そういうのってほとんど proprietary ばかりな気がする)
# cjk-gs も「クロスプラットフォームな Ghostscript の設定ツール」が主眼なはずなので,
OS-specific なコードは極力入れないように注意しています。
今回 High Sierra 対応でお使いいただいている --fontdef-add オプションは先月実装したばかり
ですが,これは「macOS に限らずどこでも役に立つはずの機能だと思ったから実装した」という
気持ちです。そういう提案ができるならば,上流へのリクエストも考えてもいいかな,とは思います。
このSeki Motokiさんの方法そのものについては、大きな問題があります。
「カレントにマップファイル(hiragino-XXX.map)があることに依存してkanji-config-updmapを呼び出す」という方法の場合、そのときはいいですが、あとになって、「カレントにマップファイルがない」状態でupdmapが呼び出されたときに、マップファイルが見つからないので失敗してしまいます。
※kanji-config-updmapだけでなくてupdmapも問題であることに注意。そして、tlmgrでの自動更新の際には一般的にupdmapが自動的に呼び出されます。
もちろん、これについては既に
ここはシンボリックリンクではなく,単純に maps/ 以下のファイルを
TEXMFLOCAL などの TEXMF ツリー以下の適切な場所に配置する のがよいでしょう。
という指摘があり、この修正を入れた手順を使っているならば、ここで述べている問題は起こらないはずです。