OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- 柳田 Ryo の投稿
返信数: 15
OTFパッケージの \rubyfamily で「ゐゑをん」のみルビ用仮名が,明朝・ゴシックとも通常ウェイトでは濃くならず,ボールドでは他よりも濃くなっています.丸ゴシックでも同様です.

フォントはヒラギノ(mojave付属)で確認しました.

よろしくお願い致します.

環境:TeX Live 2018 ネットワークインストーラーをダウンロード・実行して macOS Mojave にインストールした.


====== ruby.tex ======

\documentclass[uplatex]{jsarticle}

\usepackage[expert,deluxe]{otf}

\begin{document}

[mc/m]


ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは

ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞーゔゕゖ



ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ

バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ


ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ


{\bfseries%

[mc/bx]


ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは

ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞーゔゕゖ



ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ

バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ


ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ


}


{\gtfamily

[gt/m]


ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは

ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞーゔゕゖ



ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ

バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ


ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ



{\bfseries%

[gt/bx]


ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは

ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞーゔゕゖ



ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ

バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ


ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ


}}


{\mgfamily

[mg/m]


ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは

ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞーゔゕゖ



ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ

バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ


ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ


}


{\rubyfamily%

[ruby/m]


ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは

ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞーゔゕゖ


\fbox{\hbox{\tate\Huge }}


\fbox{\hbox{\yoko\Huge }}




ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ

バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ


ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ


{\bfseries%

[ruby/bx]


ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは

ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞーゔゕゖ



ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ

バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ


ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ


}}


{\gtfamily\rubyfamily%

[rubyg/m]


ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは

ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞーゔゕゖ



ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ

バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ


ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ


{\gtfamily\rubyfamily\bfseries%

[rubyg/bx]


\fbox{\hbox{\tate\Huge ぁ}}


\fbox{\hbox{\yoko\Huge ぁ}}


ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは

ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞーゔゕゖ



ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ

バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ


ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ


}}


{\mgfamily\rubyfamily%

[rubymg/m]


ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは

ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞーゔゕゖ



ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ

バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ


ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ


}

\end{document}


柳田 Ryo への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- 和田 勇 の投稿
問題がないようにおもいますが、どこがおかしいか指摘しやすいよう番号付けするなど書き換えたサンプルソースを添付しますので、その番号で指摘して下さい。

提供していただいたサンプルソースの内容をベースに若干修正・加筆しましたが、特におかしいと言われる「ゐゑをん」の状況の違いがわかるようにしたものを最初のページにまとめてあります。

それとインストール直後なのでデフォルトだとおもいますが、 pdf に埋め込まれたフォント情報 も提示していただくと、調査に役立つと思います。

埋め込みフォント情報は pdffonts というコマンドなどで収集できます。
和田 勇 への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- 柳田 Ryo の投稿
ありがとうございます.後に書いていますが,こちらの環境では,uplatex+dvipdfmxでは「ゐゑをん」がおかしくなり,platex+dvipmdfxでは正常であることが分かりました.
------

いただいたruby-sample.texをタイプセットしました.1ページ目では,\rubyfamilyが指定されている全ての番号(7–16, 18, 20, 22, 24, 26, 28, 30)で「ゐゑをん」のウェイトが異なるように見えます.

pdffontsでフォントを確認したことろ,ヒラギノ明朝ProN-W3, W6,角ゴProN-W3, W6, 丸ゴProN-W4,角ゴStdN-W8が埋め込まれていることを確認しました(PDFファイルを添付します).

------------------------------------ ----------------- --- --- --- ---- ---------

VIKRUQ+CMR10 Type 1C yes yes no X 4 0

QXMSBC+HiraMinProN-W3-Identity-H CID Type 0C yes yes no 6 0

QHVEZP+HiraMinProN-W6-Identity-H CID Type 0C yes yes no 8 0

TMBMER+CMBX10 Type 1C yes yes no X 9 0

RHDAWX+HiraKakuProN-W3-Identity-H CID Type 0C yes yes no 11 0

FUHEGL+HiraKakuProN-W6-Identity-H CID Type 0C yes yes no 13 0

BKIAQP+HiraMaruProN-W4-Identity-H CID Type 0C yes yes no 15 0

TEHUQA+HiraKakuStdN-W8-Identity-H CID Type 0C yes yes no 17 0

UMQUPN+CMSS12 Type 1C yes yes no X 22 0

QXMSBC+HiraMinProN-W3-Identity-V CID Type 0C yes yes no 23 0

QHVEZP+HiraMinProN-W6-Identity-V CID Type 0C yes yes no 24 0

RHDAWX+HiraKakuProN-W3-Identity-V CID Type 0C yes yes no 25 0

FUHEGL+HiraKakuProN-W6-Identity-V CID Type 0C yes yes no 26 0

BKIAQP+HiraMaruProN-W4-Identity-V CID Type 0C yes yes no 30 0

TEHUQA+HiraKakuStdN-W8-Identity-V CID Type 0C yes yes no 49 0

-------------

TeXShopではuplatex+dvipdmfxで処理していますが,試しに以下のソース(ruby-test.tex)

\documentclass{jsarticle}
\usepackage[expert,deluxe]{otf}
\begin{document}
あいうえお ゐゑをん
\rubyfamily
あいうえお ゐゑをん
\end{document}

をuplatex+dvipdmfxで処理するとこれまでと同様に\rubyfamily の「ゐゑをん」が異常,platex+dvipdfmxで処理したところ「ゐゑをん」もあいうえとと同じウェイトで正常に表示されました.生成したruby-test.pdfにはヒラギノ明朝ProNW3が埋め込まれていることをpdffontsで確認しました.

柳田 Ryo への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- 和田 勇 の投稿
platex では OK とのことなので画像比較をこころみましたところ、たしかに「ゐゑをん」のところだけ uplatex と platex では違いますね。柳田さんの報告とは異なりましたが、1,2,7-22,24,26,28,30 に違いが出ています。
添付する diff-pdf を使い画像差分合成した updatex-platex-diff.pdf を参照して下さい。シアンで表示されたのが uplatex 、赤で表示されたものが platex のもの(たぶん)。

添付ファイルには以下のものを収めてあります。

rubyfamily.d/platex.tex
rubyfamily.d/uplatex.tex
rubyfamily.d/platex.pdf
rubyfamily.d/uplatex.pdf
rubyfamily.d/uplatex-platex-diff.pdf

さて、これからマクロなどを追ってみますが、この辺あまり詳しくないので、otf パッケージやフォント周りに詳しい方、サポートしていただけると助かります。

なお、先の投稿時点では ipa のフォントで比較しておりました。ipa のを使うと問題はないようです。

なお2、 platex で処理するにあたり「ゔゕゖ」と「ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ」 を DeclearUnicodeCharacter で無理くり対処しても dvipdfmx でグリフがないとか生成される pdf で該当文字が豆腐文字で表示されなくなってしまう等々でコメントアウトしています。
和田 勇 への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- Z. R. の投稿

japanese-otf-uptexの仮想フォント(VF)にミスがあるようです。

(以下は「jfmutil vf2zvp0 uprubyminr-h」の出力。)

(VTITLE )
(DESIGNSIZE R 10.0)
(CHECKSUM O 0)
(MAPFONT D 0            #←VF内の既定フォント
   (FONTNAME uphminr-h) #←非expertの仮想フォント
   (FONTCHECKSUM O 0)
   (FONTAT R 1.0)
   (FONTDSIZE R 10.0)
   )
(MAPFONT D 1
   (FONTNAME cidjmr3-h) #←ここにルビ用仮名グリフがある
   (FONTCHECKSUM O 0)
   (FONTAT R 1.0)
   (FONTDSIZE R 10.0)
   )
#……(略)……
(CHARACTER H 308E #'ゎ'
   (CHARWD R 1.0)
   (MAP
      (SELECTFONT D 1) #←フォントを切り替えている
      (SETCHAR H 373E)
      )
   )
(CHARACTER H 308F #'わ'
   (CHARWD R 1.0)
   (MAP
      (SELECTFONT D 1)
      (SETCHAR H 373F)
      )
   )
(CHARACTER H 3090 #'ゐ'
   (CHARWD R 1.0)
   (MAP                #←フォントを切り替えていない!
      (SETCHAR H 3090) #←非expertフォント'ゐ'になる
      )
   )
(CHARACTER H 3091 #'ゑ'
   (CHARWD R 1.0)
   (MAP
      (SETCHAR H 3091)
      )
   )
(CHARACTER H 3092 #'を'
   (CHARWD R 1.0)
   (MAP
      (SETCHAR H 3092)
      )
   )
(CHARACTER H 3093 #'ん'
   (CHARWD R 1.0)
   (MAP
      (SETCHAR H 3093)
      )
   )
(CHARACTER H 3094 #'ゔ'
   (CHARWD R 1.0)
   (MAP
      (SELECTFONT D 1)
      (SETCHAR H 3744)
      )
   )
#……(略)……
Z. R. への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- aminophen の投稿
> japanese-otf-uptexの仮想フォント(VF)にミスがあるようです。

調べてみると,確かに japanese-otf-uptex の CheckDVICode.pm に於いて

sub is_ucs_hira{
return 1 if ($dvicode>=0x3041 && $dvicode<=0x308F);
return 1 if ($dvicode>=0x3094 && $dvicode<=0x3096); # Vu, small Ka, small Ke
return 0;
}

で 0x3090 〜 0x3093 が弾かれているようです。ここを直せば良い?
aminophen への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- aminophen の投稿
とりあえず このコミット で修正してみました。

https://github.com/texjporg/japanese-otf-mirror/tree/forum2541-rubyfamily/japanese-otf-uptex/vf

このフォルダにある VF ファイルをインストールするか,
あるいは .tex ファイルと同じフォルダに置いてみると治るでしょうか?

# 仮に治ったとしても,ルビ用以外の VF にも差分が出ているようなので,
# 安全かどうかまだ不安…。
aminophen への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- aminophen の投稿
> # 仮に治ったとしても,ルビ用以外の VF にも差分が出ているようなので,
> # 安全かどうかまだ不安…。

発生する変化をまとめました。
https://gist.github.com/aminophen/bd337a7db80308b9fa273c41d54bdc52

変わったのは「ルビ用仮名」と「横書き用・縦書き用仮名」の「ゐゑをん」のマッピングだけ
であり,pLaTeX 版の OTF パッケージの VF のそれとも一致するので,安全だと言えそうです。
aminophen への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- aminophen の投稿
あ,あと「ヒラギノのプロポーショナル仮名 (\propshape)」の
マッピングも変わっていますね。(結論は変わらない。)
aminophen への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- 柳田 Ryo の投稿
修正済みVFファイルを .tex ファイルと同じフォルダに置いてuplatexでタイプセットを実行し,ルビ用仮名が正常に表示されることを確認しました.
柳田 Ryo への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- t tk の投稿
皆さん、障害報告、修正検討、動作確認などありがとうございます。

頂いたGitHubのプルリクエストを確認したのち改訂版を出すつもりです。
お急ぎの場合は、そちらの修正済みVFをご利用くださるようお願いします。

t tk への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- 和田 勇 の投稿
午後は外出していたので出遅れてしまいましたが念のため報告しておきます。

こちらでもuplatex と platex それぞれで生成した pdf を重ね合わせてチェックしましたが大丈夫でした。

改訂版の作業よろしくお願いします。

t tk への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- t tk の投稿
japanese-otf-uptex Ver.0.22 としてリリースしました。
tfm, vf生成済みはこちらにあります。
CTAN, TeX Live svnへもすでに届いています。

実質的にaminophenさんに頂いたパッチと同じですので、
既にそちらの版を適用されている場合には新版を入れる必要はありません。

皆様ご協力ありがとうございました。

aminophen への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- 和田 勇 の投稿
みなさん、対応が早い :-)

指摘のひらがな部分だけでなくカタカナ用も含めて、使う使わないという論はあるとおもいますが、0x3099-0x309E や 0x30FB-0x30FE の文字の扱いもきめておいたほうがよいかなとおもいます。

和田 勇 への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- aminophen の投稿
> 0x3099-0x309E や 0x30FB-0x30FE の文字の扱いもきめておいたほうがよいかなとおもいます。

個人的意見ですが,なるべく japanese-otf / japanese-otf-uptex 間で違いが小さい方が良いと思います。

で,調べてみました。(右辺がないものは JIS X 0208 にない。)

U+3099 [ ゙]
U+309A [ ゚]
U+309B [゛] => JIS 0x212B
U+309C [゜] => JIS 0x212C
U+309D [ゝ] => JIS 0x2135
U+309E [ゞ] => JIS 0x2136
U+309F [ゟ]

U+30FB [・] => JIS 0x2126
U+30FC [ー] => JIS 0x213C
U+30FD [ヽ] => JIS 0x2133
U+30FE [ヾ] => JIS 0x2134
U+30FF [ヿ]

pLaTeX 版 (japanese-otf) で扱われるのは,JIS X 0208 内の文字だけですが,
そのうち切り替えがあるものは以下の5つ ("odoriji") です。
JIS 0x2135
JIS 0x2136
JIS 0x213C
JIS 0x2133
JIS 0x2134
これらは japanese-otf-uptex でも切り替えが有効のようです。

残りの文字については,切り替えがありません。
JIS 0x212B
JIS 0x212C
JIS 0x2126
これらは japanese-otf-uptex でも切り替えがないようです。

従って,現行品の時点でこれらは japanese-otf / japanese-otf-uptex 間で差異はないという認識です。
aminophen への返信

Re: OTFパッケージの \rubyfamily で「ゐゑをん」の切り換えがおかしい

- 和田 勇 の投稿
> 従って,現行品の時点でこれらは japanese-otf / japanese-otf-uptex 間で差異はないという認識です。

ソース内の odoriji を見、了解しました。