TeXフォーラムにご参加の皆様には日頃大変お世話になっており、誠にありがとうございます。
本日 TeX を更新したところ謎の現象に見舞われてしまい、なにか対策がないかご相談させていただきたく、投稿している次第です。
症状としては、MacTeX 2021(Homebrew でインストール)で以下の文書をタイプセットし、生成された ps ファイルを Ghostscript で表示しようとするとエラーになる、というものです。
\documentclass[dvips,uplatex]{jsarticle}
\usepackage[expert]{otf}
\begin{document}
% あ安 % OK
安あ % NG
\end{document}
uplatex test.tex
dvips test.dvi
gs test.ps
↑
これがエラーになります(ps2pdf でも同様です)。エラーメッセージは以下のとおりです。
----------
Error: /undefined in Np
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1974 1 3 %oparray_pop 1973 1 3 %oparray_pop 1961 1 3 %oparray_pop 1817 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:732/1123(ro)(G)-- --dict:0/20(G)-- --dict:102/200(L)-- --dict:104/300(L)--
Current allocation mode is local
Last OS error: No such file or directory
Current file position is 31775
GPL Ghostscript 9.52: Unrecoverable error, exit code 1
----------
単純に dvips が対応していないのであれば諦めるしかありませんが、「あ安」だと問題ないので、なんとかなるのではないかと淡い期待を抱いているところです。
なお、expert をやめれば問題ありませんし、dvipdfmx であれば「安あ」でも問題ないようです。
なにか dvips で otf の expert を使う妙案がありましたらご教示いただきたくお願い申し上げます。
----- 当方の環境 -----
macOS 10.15.7
uplatex e-upTeX 3.141592653-p3.9.0-u1.27-210218-2.6 (utf8.uptex) (TeX Live 2021)
dvips(k) 2021.1
Ghostscript 9.52
ご返信ありがとうございます。私の質問の仕方が不適切であることをやんわりとご指摘いただいたものと思います。
expert をやめたり「あ安」なら問題ないことから察するに、原ノ味フォントの設定は特段問題ないと思いますが、念のため、ローカルの設定(~/Library/texlive、~/Library/texmf、~/Library/ghostscript)を削除して、
sudo cjk-gs-integrate --link-texmf --force
kanji-config-updmap-sys --jis2004 haranoaji
を実行してみましたが、残念ながら効果はありませんでした。
-----
~/tmp gs test.ps
GPL Ghostscript 9.52 (2020-03-19)
Copyright (C) 2020 Artifex Software, Inc. All rights reserved.
This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
see the file COPYING for details.
Loading HaranoAjiMincho-Regular-UniJIS-UTF16-H font from /usr/local/Cellar/ghostscript/9.52/share/ghostscript/9.52/Resource/Font/HaranoAjiMincho-Regular-UniJIS-UTF16-H... 20482596 18907400 4274984 2727676 1 done.
Error: /undefined in Np
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1974 1 3 %oparray_pop 1973 1 3 %oparray_pop 1961 1 3 %oparray_pop 1817 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:731/1123(ro)(G)-- --dict:0/20(G)-- --dict:102/200(L)-- --dict:104/300(L)--
Current allocation mode is local
Last OS error: No such file or directory
Current file position is 31727
GPL Ghostscript 9.52: Unrecoverable error, exit code 1
-----
expert をやめたり「あ安」なら問題ないことから察するに、原ノ味フォントの設定は特段問題ないと思いますが、念のため、ローカルの設定(~/Library/texlive、~/Library/texmf、~/Library/ghostscript)を削除して、
sudo cjk-gs-integrate --link-texmf --force
kanji-config-updmap-sys --jis2004 haranoaji
を実行してみましたが、残念ながら効果はありませんでした。
-----
~/tmp gs test.ps
GPL Ghostscript 9.52 (2020-03-19)
Copyright (C) 2020 Artifex Software, Inc. All rights reserved.
This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
see the file COPYING for details.
Loading HaranoAjiMincho-Regular-UniJIS-UTF16-H font from /usr/local/Cellar/ghostscript/9.52/share/ghostscript/9.52/Resource/Font/HaranoAjiMincho-Regular-UniJIS-UTF16-H... 20482596 18907400 4274984 2727676 1 done.
Error: /undefined in Np
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1974 1 3 %oparray_pop 1973 1 3 %oparray_pop 1961 1 3 %oparray_pop 1817 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:731/1123(ro)(G)-- --dict:0/20(G)-- --dict:102/200(L)-- --dict:104/300(L)--
Current allocation mode is local
Last OS error: No such file or directory
Current file position is 31727
GPL Ghostscript 9.52: Unrecoverable error, exit code 1
-----
昨年より japanese-otf-uptex の virtual fontの軽量化という取り組みをしておりました。
関連トピックス japanese-otf-uptex v0.26
ご指摘の現象を確認しました。
dvips を軽量 vf に対応させたつもりでしたが不完全な部分が残っていました。開発側の立場の正攻法は dvips の修正が必要です。
ユーザー様側での取り敢えずの対処法は、
- japanese-otf-uptex v0.25 に戻す。
- 本文用vfの軽量化をやめて再生成したものを使う。
具体的には、vf生成スクリプトumakeotf{,_brsg,_jis04,_prop} の中のumkjvfの "-omitfw"オプションを消去してvf生成スクリプトを実行。
のどちらかで対応可能だと思います。
ご不便を掛けて申し訳ありません。
早速ご対応いただき誠にありがとうございます。
TeX Live バイナリの生成に不慣れですが、
rsync -a --delete --exclude=.svn tug.org::tldevsrc/Build/source/ tmp
cd tmp
./Build
のように実行ところ一応 dvips を生成できたようです。(make install せずに)dvips バイナリ(と念のため同じフォルダに入っていた 8 個の *.pro)を手作業で MacTeX 2021 に取り入れてみました。
その結果件の問題は修正されていることを確認できました。
ただ、別の問題として、ルビが豆腐になってしまうようです。expert を外せば正常に出力できます。
\documentclass[dvips,uplatex]{jsarticle}
\usepackage[expert]{otf}
\usepackage{okumacro}
\begin{document}
\ruby{Newton}{ニュートン}% 「ニュートン」が豆腐に
\end{document}
dvipdfmx でも同様です(expert をとれば正常、つけると豆腐)。
TeX Live バイナリの生成に不慣れですが、
rsync -a --delete --exclude=.svn tug.org::tldevsrc/Build/source/ tmp
cd tmp
./Build
のように実行ところ一応 dvips を生成できたようです。(make install せずに)dvips バイナリ(と念のため同じフォルダに入っていた 8 個の *.pro)を手作業で MacTeX 2021 に取り入れてみました。
その結果件の問題は修正されていることを確認できました。
ただ、別の問題として、ルビが豆腐になってしまうようです。expert を外せば正常に出力できます。
\documentclass[dvips,uplatex]{jsarticle}
\usepackage[expert]{otf}
\usepackage{okumacro}
\begin{document}
\ruby{Newton}{ニュートン}% 「ニュートン」が豆腐に
\end{document}
dvipdfmx でも同様です(expert をとれば正常、つけると豆腐)。
現状の GitHub 上の texlive-source HEAD (commit 3d38702c8) の dvips で本件を試したところ、添付ファイル d3068_git3d38702c8.pdf のとおり、期待する結果を得られました!
以上、簡単な動作報告のみです。
以上、簡単な動作報告のみです。
原ノ味フォントを使用し、expertオプションで組方向専用仮名のグリフを使いつつrubyを使いたい場合
今までは ruby が豆腐になってしまいました。
これは、原ノ味 ( その元の 源ノ ) フォントにruby専用仮名グリフが無いためで、仕様通りなのですが、
今回 、回避策として japanese-otf-uptex v0.29 の更新にオプション 'noruby' を追加しました。
\usepackage[expert,noruby]{otf}
とすれば、原ノ味フォントでも豆腐にならないはずです。
本日CTANに投稿したので、それが届けば使えるようになると思います。
今までは ruby が豆腐になってしまいました。
これは、原ノ味 ( その元の 源ノ ) フォントにruby専用仮名グリフが無いためで、仕様通りなのですが、
今回 、回避策として japanese-otf-uptex v0.29 の更新にオプション 'noruby' を追加しました。
\usepackage[expert,noruby]{otf}
とすれば、原ノ味フォントでも豆腐にならないはずです。
本日CTANに投稿したので、それが届けば使えるようになると思います。
素晴らしい機能を実装していただき有難うございました。早速活用させていただきます。
なお、\gtfamily\ebseries(極太ゴシック)のとき、ルビが極太にならないようです。
極太文字にルビをふることは想定されないかもしれませんが、バグの可能性も考え、念のためご報告申し上げます。
----- 文書例 -----
\documentclass[dvips,uplatex]{jsarticle}
\usepackage[deluxe,expert,noruby]{otf}
\usepackage{okumacro}
\begin{document}
{\mcfamily\ltseries \ruby{猫}{ねこ}}
{\mcfamily \ruby{猫}{ねこ}}
{\mcfamily\bfseries \ruby{猫}{ねこ}}
{\gtfamily \ruby{猫}{ねこ}}
{\gtfamily\bfseries \ruby{猫}{ねこ}}
{\gtfamily\ebseries \ruby{猫}{ねこ}}% このルビが太くならないようです。
{\mgfamily \ruby{猫}{ねこ}}
\end{document}
----------
以下のような警告が出ます。
> LaTeX Font Warning: Font shape `JT2/rubyg/eb/n' undefined
> (Font) using `JT2/rubyg/m/n' instead on input line 20.
> LaTeX Font Warning: Font shape `JY2/rubyg/eb/n' undefined
> (Font) using `JY2/rubyg/m/n' instead on input line 20.
なお、\gtfamily\ebseries(極太ゴシック)のとき、ルビが極太にならないようです。
極太文字にルビをふることは想定されないかもしれませんが、バグの可能性も考え、念のためご報告申し上げます。
----- 文書例 -----
\documentclass[dvips,uplatex]{jsarticle}
\usepackage[deluxe,expert,noruby]{otf}
\usepackage{okumacro}
\begin{document}
{\mcfamily\ltseries \ruby{猫}{ねこ}}
{\mcfamily \ruby{猫}{ねこ}}
{\mcfamily\bfseries \ruby{猫}{ねこ}}
{\gtfamily \ruby{猫}{ねこ}}
{\gtfamily\bfseries \ruby{猫}{ねこ}}
{\gtfamily\ebseries \ruby{猫}{ねこ}}% このルビが太くならないようです。
{\mgfamily \ruby{猫}{ねこ}}
\end{document}
----------
以下のような警告が出ます。
> LaTeX Font Warning: Font shape `JT2/rubyg/eb/n' undefined
> (Font) using `JT2/rubyg/m/n' instead on input line 20.
> LaTeX Font Warning: Font shape `JY2/rubyg/eb/n' undefined
> (Font) using `JY2/rubyg/m/n' instead on input line 20.
ご報告ありがとうございます。
下記のような otf.sty の修整でいかがでしょうか。
ただし、前半は本件とは別件 (https://github.com/t-tk/japanese-otf-uptex/issues/8#issuecomment-1699265979) です。
-----
diff --git a/japanese-otf-uptex/sty/otf.sty b/japanese-otf-uptex/sty/otf.sty
index 635dedb..f8776bd 100644
--- a/japanese-otf-uptex/sty/otf.sty
+++ b/japanese-otf-uptex/sty/otf.sty
@@ -287,6 +287,7 @@
\newcommand\set@character@{\afterassignment\put@character@\@tempcnta}
\newcommand\put@character@{%
\otf@kanjishape{-}\selectfont%
+ \advance\@tempcnta by "110000
\kchar\@tempcnta%
}
\catcode`\"=\count@
@@ -470,6 +471,8 @@
\DeclareFontShape{\otf@JTn}{hgt}{eb}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ expgotheb\nlck@sfx@-v}{}
\DeclareFontShape{\otf@JYn}{ruby}{l}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \ruby@pfx@ minl-h}{}
\DeclareFontShape{\otf@JTn}{ruby}{l}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \ruby@pfx@ minl-v}{}
+ \DeclareFontShape{\otf@JYn}{rubyg}{eb}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \ruby@pfx@ gotheb-h}{}
+ \DeclareFontShape{\otf@JTn}{rubyg}{eb}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \ruby@pfx@ gotheb-v}{}
\else
\DeclareFontShape{\otf@JYn}{mg}{m}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ nmlmgothr\nlck@sfx@-h}{}
\DeclareFontShape{\otf@JTn}{mg}{m}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ nmlmgothr\nlck@sfx@-v}{}
下記のような otf.sty の修整でいかがでしょうか。
ただし、前半は本件とは別件 (https://github.com/t-tk/japanese-otf-uptex/issues/8#issuecomment-1699265979) です。
-----
diff --git a/japanese-otf-uptex/sty/otf.sty b/japanese-otf-uptex/sty/otf.sty
index 635dedb..f8776bd 100644
--- a/japanese-otf-uptex/sty/otf.sty
+++ b/japanese-otf-uptex/sty/otf.sty
@@ -287,6 +287,7 @@
\newcommand\set@character@{\afterassignment\put@character@\@tempcnta}
\newcommand\put@character@{%
\otf@kanjishape{-}\selectfont%
+ \advance\@tempcnta by "110000
\kchar\@tempcnta%
}
\catcode`\"=\count@
@@ -470,6 +471,8 @@
\DeclareFontShape{\otf@JTn}{hgt}{eb}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ expgotheb\nlck@sfx@-v}{}
\DeclareFontShape{\otf@JYn}{ruby}{l}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \ruby@pfx@ minl-h}{}
\DeclareFontShape{\otf@JTn}{ruby}{l}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \ruby@pfx@ minl-v}{}
+ \DeclareFontShape{\otf@JYn}{rubyg}{eb}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \ruby@pfx@ gotheb-h}{}
+ \DeclareFontShape{\otf@JTn}{rubyg}{eb}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \ruby@pfx@ gotheb-v}{}
\else
\DeclareFontShape{\otf@JYn}{mg}{m}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ nmlmgothr\nlck@sfx@-h}{}
\DeclareFontShape{\otf@JTn}{mg}{m}{n}{<-> s * [\utf@sc@le] \otf@pfx@ \brsg@pfx@ nmlmgothr\nlck@sfx@-v}{}