Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

\CIDC{}, \CIDT{}, \CIDK{}の多書体化 #8

Open
t-tk opened this issue May 20, 2023 · 8 comments
Open

\CIDC{}, \CIDT{}, \CIDK{}の多書体化 #8

t-tk opened this issue May 20, 2023 · 8 comments

Comments

@t-tk
Copy link
Owner

t-tk commented May 20, 2023

\CIDC{}, \CIDT{}, \CIDK{} は、現在、本家 otfパッケージ (japanese-otf) で2書体用意されているフォントセットをそのまま用いている。
これを、本文用フォントや \UTF{} (日本語用), \UTFC{}, \UTFT{}, \UTFK{} (CK用, #4) と同様に7書体に拡張する。
#2, #3, #4 とも関連する。

Ref.
和文vf の fallback を使った vf の軽量化
\UTFC{}, \UTFT{}, \UTFK{}の多書体化

HaranoAjiFonts とその CK版でテストする。

\CID{}, \CIDC{}, \CIDT{}, \CIDK{} のいずれもupLaTeX使用時はsubfont方式ではなく文字コードとしてCIDのスカラー値を直接使用するようにする方針。

フォントのリスト
7書体は、明朝体3ウェイト(ml,mr,mb)、ゴシック体3ウェイト(gr,gb,ge)、丸ゴシック体(mgr)
横組用(h)、縦組み用(v)2種類。

日本語
Japanese, Adobe-Japan, \CID{}
vf/cidj*--[hv].vf (7書体,14個, Unicode)
tfm/cidj*--[hv].tfm (7書体,14個, Unicode)
tfm/otf-cj*-[hv].tfm (7書体,14個) 既存だが、半角幅,1/3角幅,1/4角幅対応のため上書きする。

簡体中国語
Simplified Chinese, Adobe-GB, \CIDC{}
vf/cidc*--[hv].vf (7書体,14個, Unicode)
tfm/cidc*--[hv].tfm (7書体,14個, Unicode)
tfm/otf-cc*-[hv].tfm (7書体,14個) うち(2書体,4個,otf-cc{mr,gr}-[hv].tfm)は既存だが、半角幅対応のため上書きする。

繁体中国語
Traditional Chinese, Adobe-CNS, \UTFT{}
vf/cidt*--[hv].vf (7書体,14個, Unicode)
tfm/cidt*--[hv].tfm (7書体,14個, Unicode)
tfm/otf-ct*-[hv].tfm (7書体,14個) うち(2書体,4個,otf-ct{mr,gr}-[hv].tfm)は既存だが、半角幅対応のため上書きする。

韓国語
Korean, Adobe-Korea, \UTFK{}
vf/cidk*--[hv].vf (7書体,14個)
tfm/cidk*--[hv].tfm (7書体,14個)
tfm/otf-ck*-[hv].tfm (7書体,14個) うち(2書体,4個,otf-ck{mr,gr}-[hv].tfm)は既存だが、半角幅対応のため上書きする。

cid{j,c,t,k}*--[hv].{vf,tfm} の文字コードはCIDのスカラー値とする。
pLaTeXはサポートせず、upLaTeXのみのサポートとする。
従来の cid{j,c,t,k}*[a-z]-[hv].{vf,tfm} では、pTeXの漢字領域の文字コードを使用し多数のsubfontに分ける実装だった。

\UTFM{} にも今回同様の多書体化ができそうだが、面倒くさそうなので今回は対応しない方針。

@t-tk
Copy link
Owner Author

t-tk commented Jun 25, 2023

https://github.com/t-tk/japanese-otf-uptex/releases/tag/v0.29
v0.29 リリース済み。
CTAN投稿済み。

@t-tk t-tk closed this as completed Jun 25, 2023
@aminophen
Copy link

aminophen commented Aug 30, 2023

\CID の多書体化とは直接関係ありませんが

「upLaTeX使用時はsubfont方式ではなく文字コードとしてCIDのスカラー値を直接使用する」

という方針転換に付随した意図しない挙動が生じているようです。

\documentclass[uplatex]{article}
\usepackage{otf}
\begin{document}

あ\CID{12289}% 12289 = 0x3001 (Unicode "、")
\tracingonline1
\showboxdepth10000
\showboxbreadth10000
\showlists % CID の "ぎ" が "、" と誤解されて禁則ペナルティが入ってしまう

\end{document}

texjporg/tex-jp-build#150 の 2022-10-26 の @t-tk さんコメントにあった

\CID{}, \CIDT{} などは、文字幅(1/2角、1/3角、1/4角など)がいろいろあるのをちゃんと新subfontで作り直そうとすると面倒なうえ間違えてしまいそうなのと、Unicodeではない文字コード(CID)のものにUnicodeの文字コード(0x10FFFF以下, しがらみがありそう)を与えてしまった場合にどんな結果が起きるのか予見出来ず、

のところの予期せぬ結果の一種と思われます。

従来は文字コード 0x110000 以降に飛ばしていたところなので,それは維持する必要があったと思います。

@t-tk
Copy link
Owner Author

t-tk commented Sep 30, 2023

\CID{12289}の前には禁則ペナルティが入らないように直すつもりですが、
下記のコードで
"\UTF{3001}"の前、"い"の後ろには禁則ペナルティが入った方が良いでしょうか?
Unicodeでは役割が一致するはずなので入ってもいいような気もします。
分かりやすさや齋藤さんオリジナルpLaTeX版との互換性という意味では「入れない仕様で統一」がよい気もします。
ご意見ください。

\documentclass[uplatex]{article}
\usepackage{otf}
\begin{document}

あ\CID{12289}% 12289 = 0x3001 (Unicode "、")\UTF{3001}%
う、%
\tracingonline1
\showboxdepth10000
\showboxbreadth10000
\showlists % CID の "ぎ" が "、" と誤解されて禁則ペナルティが入ってしまう

\end{document}

@aminophen
Copy link

ありがとうございます。\UTF についても入れない仕様で統一,で良いと思います。

@t-tk
Copy link
Owner Author

t-tk commented Oct 1, 2023

ご意見ありがとうございます。
分かりやすさや齋藤さんオリジナルpLaTeX版との互換性という意味で「\UTFも\CIDも禁則ペナルティが入らない」ようにします。
↓で手元では動いています。
https://okumuralab.org/tex/mod/forum/discuss.php?d=3068#p22630

t-tk added a commit that referenced this issue Oct 8, 2023
t-tk added a commit that referenced this issue Oct 8, 2023
t-tk added a commit to texjporg/japanese-otf-mirror that referenced this issue Oct 9, 2023
@t-tk
Copy link
Owner Author

t-tk commented Oct 9, 2023

\CID{}前の禁則ペナルティを挿入しない件、CTANに投稿しました。
ここは閉じます。

@t-tk t-tk closed this as completed Oct 9, 2023
@t-tk
Copy link
Owner Author

t-tk commented Dec 30, 2024

\UTF{}, \CID{}などのwidow penaltyの効きがオリジナルとuplatexで異なってしまっています。
オリジナルの platex + japanese-otf では有効なのに対し、uplatex + japanese-otf-uptex のデフォルトでは無効です。
あくまでdefault動作のみであり、kcatcodeを設定すればオリジナルに揃えることはできます。
また、このwidow処理のありなしが気になる場面は少ないようにも思えます。
しかし、オリジナルに動作をあわせるべく、uptexのエンジンの kcatcode の初期値を other_kchar(18) → kanji(16) に変更しようと思います。

% platex or uplatex
\documentclass{jsarticle}
\usepackage{otf}
\pagestyle{empty}
\begin{document}
\parindent0pt
\kanjiskip=0zw plus .5zw minus -.05zw

\jcharwidowpenalty=10000

\fbox{\parbox{32.5zw}{%
人の目の届かぬところに虫は潜み、
人の手の届かぬところに虫は棲みます。}}

\makeatletter
\if@otf@uplatex
%\kcatcode"110000=16% kanji
%\kcatcode"110000=17% kana
%\kcatcode"110000=18% other_kchar
%\kcatcode"110000=19% hangul
\fi
\makeatother

\fbox{\parbox{32.5zw}{%
人の目の届かぬところに虫は潜み、
人の手の届かぬところに虫は棲みま\UTF{3059}。}}

\makeatletter
\if@otf@uplatex
%\kcatcode"110000=16% kanji
%\kcatcode"110000=17% kana
%\kcatcode"110000=18% other_kchar
%\kcatcode"110000=19% hangul
\fi
\makeatother

\fbox{\parbox{32.5zw}{%
人の目の届かぬところに虫は潜み、
人の手の届かぬところに虫は棲みま\CID{866}。}}

\end{document}

@t-tk t-tk reopened this Dec 30, 2024
@t-tk
Copy link
Owner Author

t-tk commented Jan 2, 2025

オリジナルに動作をあわせるべく、uptexのエンジンの kcatcode の初期値を other_kchar(18) → kanji(16) に変更は
TeX Live svnにコミット。r73271

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants