Source Han Sans and XeTeX

Source Han Sans and XeTeX

- Akira Kakuto の投稿
返信数: 12
Jiang Jiang さんがパッチを作って下さって
こちらでの簡単なテストでは
SourceHanSansJP, SourceHanSans (Pan-CJK)
を XeTeX で使用することができています。
Peter さんによって採用され次第,Windows 用
のバイナリを用意したいと思います。
Akira Kakuto への返信

Re: Source Han Sans and XeTeX

- Akira Kakuto の投稿
2014/07/24(JST) の日付の xdvipdfmx.exe に
Jiang Jiang さんのパッチをあてました。
Akira Kakuto への返信

Re: Source Han Sans and XeTeX

- Norbert Preining の投稿
次のDebianパッケージに入れます
texlive-bin (2014.20140528.34243-6) UNRELEASED; urgency=medium

* cherrypick support CID-keyed OTF fonts in xdvipdfmx from upstream

-- Norbert Preining <preining@debian.org> Thu, 24 Jul 2014 13:57:26 +0900

Akira Kakuto への返信

Re: Source Han Sans and XeTeX

- 匿 名 の投稿

W32TeX [2014/07/24] をインストールして XeLaTeX で Source Han Sans を使用してみました.

\documentclass{article}
\usepackage{fontspec}
\setmainfont{SourceHanSansJP-Normal.otf}
\begin{document}
見
\end{document}

を XeLaTeX でタイプセットすると 見(U+898B) が ⾒(U+2F92) で出力されます.

\documentclass{article}
\usepackage{fontspec}
\setmainfont{ipag.ttf}
\begin{document}
見
\end{document}

のように \setmainfont{ipag.ttf} に変更すると 見(U+898B) で出力されるようです.

匿 名 への返信

Re: Source Han Sans and XeTeX

- Akira Kakuto の投稿
ipag.ttf は U+2F92 にグリフを持たないようです。
両方ある場合は,小さいコード番号を選ぶのですかね。
Akira Kakuto への返信

Re: Source Han Sans and XeTeX

- Akira Kakuto の投稿
\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{KozMinPr6N-Regular}
\begin{document}
\char"898B\char"2F92
\end{document}

の場合は,両方とも U+898B になりました。
(U+2F92 にもグリフはあります)。
Akira Kakuto への返信

Re: Source Han Sans and XeTeX

- 匿 名 の投稿

Kakuto さん返信ありがとうございます.
私の環境でも KozMinPr6N-Regular.otf の場合は
⾒(U+2F92) が 見(U+898B) で出力されました.
TeX Live 2014 と W32TeX の XeTeX は
使用するフォントによっては
見(U+898B) が ⾒(U+2F92) で出力されたり
⾒(U+2F92) が 見(U+898B) で出力されたりすることが
あるようです.
XeLaTeX で \setmainfont{ipaexm.ttf} で 見(U+898B) を処理すると ⾒(U+2F92) で出力される
の ipaexm.ttf では
Windows 環境の TeX Live 2014 の場合は
見(U+898B) が ⾒(U+2F92) で出力され
見(U+898B) が出力されませんでしたが
Linux 環境の TeX Live 2014 の場合は
⾒(U+2F92) が 見(U+898B) で出力され
⾒(U+2F92) が出力されませんでした.
upTeX や LuaTeX ではこのような現象は発生しなかったので
見(U+898B) や ⾒(U+2F92) を含む文書を作成する場合は
XeTeX ではなく upTeX や LuaTeX を使用すればいいと思います.
ご確認ありがとうございました.

匿 名 への返信

Re: Source Han Sans and XeTeX

- Akira Kakuto の投稿
> 見(U+898B) や ⾒(U+2F92) を含む文書を作成する場合は
> XeTeX ではなく upTeX や LuaTeX を使用すればいいと思います.
> ご確認ありがとうございました.

どちらの場合も,copy & paste もできるので,
他方の alias と考えて気にせずに XeTeX を使うのは
だめですか?
Akira Kakuto への返信

Re: Source Han Sans and XeTeX

- 匿 名 の投稿
> どちらの場合も,copy & paste もできるので,
> 他方の alias と考えて気にせずに XeTeX を使うのは
> だめですか?

だめだと思います.
alias というのはあくまでポインタに対する別名なので
同じ機能を有していないと
alias とはみなせないと思います.
例えば PDF 文書内の  ⾒(U+2F92) を検索する場合に
見(U+898B) で ⾒(U+2F92) が検索可能であれば
alias とみなしてもいいと思いますが
実際には 見(U+898B) で ⾒(U+2F92) は検索できません.
C では数字の 0 と NULL 文字と NULL ポインタをすべて 0 とみなして
扱うことはありますがこの場合は私は alias と考えて OK だと思います.
それは 0 という値を 数字の 0 にも NULL 文字にも NULL ポインタにも
適用できて実際にプログラムが動作するからです.
見(U+898B) と ⾒(U+2F92) は見た目は似ていますが
データとしては全く別のものなので
プログラムから扱う場合は
別の文字として認識しないといけないと思います.
匿 名 への返信

Re: Source Han Sans and XeTeX

- Akira Kakuto の投稿
XeTeX で native フォントを使う場合,.xdv ファイルに書かれる
のは,文字コードではなくて,そのフォントの場合の gid と
なります。ipaexm.ttf の場合,U+898B と U+2F92 の gid は
共通で 1653 となっています。従って .xdv ファイルができた
段階で U+898B を使ったのか,U+2F92 を使ったのかという情報
は無くなっています。ドライバが .xdv から PDF を作るとき,
フォントの CMap table からコード情報を toUicode で書き込む
ので,結果はそのフォントに依存します。共通の gid を持った
異なった文字コードを区別できないのは上のような XeTeX の
性質によると思います。
Akira Kakuto への返信

Re: Source Han Sans and XeTeX

- 匿 名 の投稿

Kakuto さん解説ありがとうございます.
この動作が XeTeX の仕様だとすると
一応納得した上で
やはりなるべく XeTeX を使用しないといった
選択をすると思います.
使用頻度の低い文字であれば特に気にならないのですが
見(U+898B) はそれなりに使用される文字だと思います.
一方で ⾒(U+2F92) はあまり使用されていないので
使用するプログラムの設定によっては
正しく表示できない場合があります.
例えば Windows 7 のメモ帳で
フォントが MS ゴシックの場合は
⾒(U+2F92) は正しく表示されません.
他のプログラムと協調して作業することを考えた場合は
⾒(U+2F92) は不便なのであまり使用したくないです.
XeTeX を使わざるを得ない場合は IPAexフォントは使用せず
IPAフォントのみ使用するといった形で XeTeX を使用すると思います.

Akira Kakuto への返信

Re: Source Han Sans and XeTeX

- Akira Kakuto の投稿
2014/07/26 の日付の xdvipdfmx.exe では,他の問題
(dvipdfmx のように,tfm 経由でも OpenType fonts
を load できるようにしてほしいという要求)を解決する
ために,CID-keyed OpenType fonts のサポートが切られて
います。おそらく一時的なことで,いつかサポートが回復
されると思います。
Akira Kakuto への返信

Re: Source Han Sans and XeTeX

- Akira Kakuto の投稿
現在の TeX Live レポジトリ のソースは問題を含む
ような気がしますので,2014/07/28 の日付けの
W32TeX では dvipdfmx.dll と xdvipdfmx.exe
を revision 34711 のものに戻しておきました。

SourceHanSans 等が再び使えるようになっている
と思います。