summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/uptex/uptex-base/samples/jis_uni_variation.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/uptex/uptex-base/samples/jis_uni_variation.tex')
-rw-r--r--Master/texmf-dist/doc/uptex/uptex-base/samples/jis_uni_variation.tex236
1 files changed, 236 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/uptex/uptex-base/samples/jis_uni_variation.tex b/Master/texmf-dist/doc/uptex/uptex-base/samples/jis_uni_variation.tex
new file mode 100644
index 00000000000..e464eed5fd4
--- /dev/null
+++ b/Master/texmf-dist/doc/uptex/uptex-base/samples/jis_uni_variation.tex
@@ -0,0 +1,236 @@
+\documentclass{ujarticle}
+\usepackage[uplatex,noreplace]{otf}
+\usepackage{color}
+\oddsidemargin-15mm
+\evensidemargin-15mm
+\topmargin-20mm
+\textheight255mm
+\textwidth180mm
+
+\font\jismin = jis at 10pt
+
+\newcommand{\MKTx}[2]{%
+ \textcolor{yellow}{\frame{\textcolor{blue}{{\jismin\kchar"#1}}}}%
+ \textcolor{yellow}{\frame{\textcolor{blue}{{\kchar\jis"#1}}}}%
+ {\small(#2)}
+}
+\newcommand{\UTFx}[1]{%
+ \textcolor{yellow}{\frame{\textcolor{blue}{{\kchar\ucs"#1}}}}%
+ \textcolor{yellow}{\frame{\textcolor{blue}{\UTF{#1}}}}{\small U+#1}}
+\newcommand{\CIDx}[1]{%
+ \textcolor{yellow}{\frame{\textcolor{blue}{\CID{#1}}}}{\small cid#1}}
+
+\edef\bs{$\backslash$\kern0em}
+
+
+\begin{document}
+\begin{center}
+{\large upTeX用JIS→Unicode変換に関する調査}
+\end{center}
+
+\section{variation tableの実状}
+ptexencでは、JIS←Unicodeの変換の際に、JIS--Unicode間での変換表のばらつき
+を吸収するための多対一変換を行うテーブルを持っている。
+実用的に用いられている変換表はほぼこれでカバーできていると思う。
+upTeXで、JIS→Unicodeの変換を行う場合は、
+JISで書かれたファイルの入力と\bs jis, \bs kuten などのプリミティヴを
+使用した場合に行われる。
+この場合に、実装依存ではなく安定した変換を行いたい。
+この際の対応関係を
+どうすべきか検討するため、現状を調査する。
+
+\parindent0mm
+\begin{tabular}{l@{~}l|l@{~}l@{~}|l@{~}c@{~}|l}\hline
+JIS & H, V & UCS2 & UniJIS-UTF16 & 実装例 & upTeX & 備考\\\hline
+\MKTx{2126}{1-1-6} & \CIDx{638}
+ & \UTFx{2022} & \CIDx{119} & ※ & & BULLET \\\cline{3-7}
+ & & \UTFx{2219} & \CIDx{117} & ※ & & BULLET OPERATOR\\\cline{3-7}
+ & & \UTFx{22C5} & 該当なし & ※ & & DOT OPERATOR\\\cline{3-7}
+ & & \UTFx{30FB} & \CIDx{638} & [g][J][W][M] & (1) & KATAKANA MIDDLE DOT\\\hline\hline
+
+\MKTx{2131}{1-1-17} & \CIDx{649}
+ & \UTFx{203E} & \CIDx{226} & [M98] & & OVERLINE\\\cline{3-7}
+ & & \UTFx{FFE3} & \CIDx{649} & [g][J][W][M99] & (1) & FULLWIDTH MACRON\\\hline\hline
+
+\MKTx{213D}{1-1-29} & \CIDx{661}
+ & \UTFx{2012} & \CIDx{114} & ※ & & FIGURE DASH \\\cline{3-7}
+ & & \UTFx{2013} & \CIDx{114} & ※ & & EN DASH \\\cline{3-7}
+ & & \UTFx{2014} & \CIDx{138} & [J][Ja140][M] & & EM DASH \\\cline{3-7}
+ & & \UTFx{2015} & \CIDx{661} & [g][W][Ja131] & (2) & HORIZONTAL BAR \\\hline\hline
+
+\MKTx{2141}{1-1-33} & \CIDx{665}
+ & \UTFx{223C} & \CIDx{100} & ※ & & TILDE OPERATOR \\\cline{3-7}
+ & & \UTFx{223E} & 該当なし & ※ & & INVERTED LASY S\\\cline{3-7}
+ & & \UTFx{301C} & \CIDx{665} & [J][M] & (3) &WAVE DASH \\\cline{3-7}
+ & & \UTFx{FF5E} & \CIDx{665} & [g][W] & & FULLWIDTH TILDE \\\hline\hline
+
+\MKTx{2142}{1-1-34} & \CIDx{666}
+ & \UTFx{2016} & \CIDx{666} & [J][M] & (4) & DOUBLE VERTICAL LINE \\\cline{3-7}
+ & & \UTFx{2225} & \CIDx{15489}{\small(\#)} & [g][W] & & PARALLEL TO (X0213:1-2-52)\\\hline\hline
+
+\MKTx{2143}{1-1-35} & \CIDx{667}
+ & \UTFx{2223} & 該当なし & ※ & & DIVIDES\\\cline{3-7}
+ & & \UTFx{FF5C} & \CIDx{667} & [g][J][W][M] & (1) & FULLWIDTH VERTICAL LINE \\\hline\hline
+
+\MKTx{2144}{1-1-36} & \CIDx{668}
+ & \UTFx{2026} & \CIDx{668} & [g][J][W][M99] & (1) & HORIZONTAL ELLIPSIS \\\cline{3-7}
+ & & \UTFx{22EF} & 該当なし & [M98]& & MIDLINE HORIZONTAL ELLIPSIS \\\hline\hline
+
+\MKTx{215D}{1-1-61} & \CIDx{693}
+ & \UTFx{2212} & \CIDx{693} & [J][M] & (3) & MINUS SIGN \\\cline{3-7}
+ & & \UTFx{FF0D} & \CIDx{693} & [g][W] & & FULLWIDTH HYPHEN-MINUS \\\hline\hline
+
+\MKTx{216F}{1-1-79} & \CIDx{711}
+ & \UTFx{00A5} & \CIDx{61} & [J] & & YEN SIGN\\\cline{3-7}
+ & & \UTFx{FFE5} & \CIDx{711} & [g] (J)[W][M] & (5) & FULLWIDTH YEN SIGN\\\hline\hline
+
+\MKTx{2171}{1-1-81} & \CIDx{713}
+ & \UTFx{00A2} & \CIDx{102} & [J][M] & & CENT SIGN \\\cline{3-7}
+ & & \UTFx{FFE0} & \CIDx{713} & [g][W] & (5) & FULLWIDTH CENT SIGN \\\hline\hline
+
+\MKTx{2172}{1-1-82} & \CIDx{714}
+ & \UTFx{00A3} & \CIDx{103} & [J][M] & & POUND SIGN \\\cline{3-7}
+ & & \UTFx{FFE1} & \CIDx{714} & [g][W] & (5) & FULLWIDTH POUND SIGN \\\hline\hline
+
+\MKTx{224C}{1-2-44} & \CIDx{751}
+ & \UTFx{00AC} & \CIDx{153} & [J][M] & & NOT SIGN \\\cline{3-7}
+ & & \UTFx{FFE2} & \CIDx{751} & [g][W] & (5) & FULLWIDTH NOT SIGN \\\hline\hline
+
+\MKTx{227E}{1-2-94} & \CIDx{779}
+ & \UTFx{20DD} & \CIDx{16328}{\small(\#)} & ※ & & COMBINING ENCLOSING CIRCLE\\\cline{3-7}
+ & & \UTFx{25EF} & \CIDx{779} & [g][J][W][M] & (1) & LARGE CIRCLE\\\hline
+
+\end{tabular}\\
+
+\parindent1zw
+\baselineskip10pt
+
+※: 実装未確認、[J](J): JISの変換表、[W]: Windows CP932の変換表、
+[M98]: Mac OSの1998年8月版までの変換表、[M99]: Mac OSのそれ以降の変換表、
+[M]: Mac OSの変換表、
+[Ja131]: Java, JRE1.3.1までの変換表、[Ja140]: Java, JRE1.4.0以降の変換表。
+Javaの表は、EUC/Shift\_JIS/JISで微妙に異なっている。
+[g]: libs/gd/jisx0208.hの変換表(ptexencでiconv不使用時に利用)。
+(\#): AJ1-5。
+JIS1-1-79の[J](J): JISでは、JIS X 0201ローマ字の円記号(いわゆる半角の円記号)と
+区別する必要がある場合は後者、特に区別する必要がない場合は
+前者ということになっているらしいが、
+前者を採用している実装はかなり少数派と思われる。
+
+参考: {\tt http://euc.jp/i18n/ucsnote.ja.html},
+{\tt http://hp.vector.co.jp/authors/VA010341/unicode/}, \\
+{\tt http://www.ingrid.org/java/i18n/unicode.html},
+{\tt http://www.asahi-net.or.jp/~hc3j-tkg/unicode/}, \\
+{\tt http://www.y-adagio.com/public/standards/tr\_xml\_jpf/kaisetsu.htm}
+
+\vspace{3mm}
+\baselineskip15pt
+
+上記の※は主に
+``http://euc.jp/i18n/ucsnote.ja.html''から採用されたものと思うが、
+この表はかなり広く似た文字を拾い集めたものであって、
+実装例が稀な例を含んでいる。実装例の稀なものまで考慮する必然性はない。
+
+gdの変換表は、Windows CP932と同等と思われる。
+Java, Macの変換表は
+旧いものを除くと、(この表に含まれている文字の範囲では)JISと同等と
+思われる。JIS X 0201ローマ字のいわゆる半角円記号(0x5c)をUnicodeの
+どこに対応付けるかで若干異なっているそうだが、
+pTeX/upTeXでは、JIS X 0201の半角円記号(0x5c)は
+ASCIIのバックスラッシュ(0x5c)と区別することが不可能であるため、
+0x5c→U+005Cの変換を採用する他ない。
+
+以上のような状況からすると、upTeXでのJIS→Unicode変換表の影響については
+[W][J]の二者を考慮しておけば問題ないと思われる。
+なお、JISの変換表は、規格上では規定ではなく参考扱いであり、
+この変換表に従わなくとも規格違反にはならないそうだ。
+
+
+\section{upTeXでのJIS→Unicode変換表の好ましい形態}
+upTeXでは、「JISで書かれたpTeX用のソースを
+非常に少ない変更でupTeXでも同等にタイプセットできる」
+という方針にしている。
+また
+「pTeXでは、min10.\{tfm,vf\}→rml.\{tfm,vf\}→CMapのH→dvipsまたは
+dvipdfmx出力」
+「upTeXでは、upjisr-h.\{tfm,vf\}→uprml-h.\{tfm,vf\}→CMapのUniJIS-UTF16-H→
+dvipsまたはdvipdfmx出力」
+を基本に考えている。
+同様の最終出力を想定した場合に、文字コード→CIDのマッピングの変更は
+vfや、新規のCMapの利用などでも可能であるが、
+既存のCMap(HやUniJIS-UTF16-H)で出来るだけ可能にしておきたい(2)(4)(5)。
+
+また、Windowsの変換表は文字の意味上JISやUnicodeの規定から
+かけはなれた変換を行っているものがある。
+組版上の副作用がない範囲内ではJISの変換表を優先させたい(3)。
+
+また、JIS X 0213で区別されている文字は、
+この対応表の結果でも区別できるようにしておきたい(4)。
+
+
+\parindent0mm
+\begin{tabular}{ccp{145mm}}
+分類 & 実装例 & upTeXでの採用の理由\\\hline
+(1) & [J][W] & 対抗の候補の実装例が稀で、考慮に値しないと思われる。\\
+(2) & [W] & [J]に従うと、JIS\&HとUnicode\&UniJIS-UTF16-Hで異なる結果
+ になってしまう。[W]では、JISの規定上文字の意味を変更していることに
+ になってしまうが、やむを得ない。\\
+(3) & [J] & CMapの結果上差異はないが、文字の意味としては[W]の変換は
+ 誤っていると思われる。\\
+(4) & [J] & [W]に従うと、JIS\&HとUnicode\&UniJIS-UTF16-Hで異なる結果
+ になる上AJ1-4外になりしかも変換の文字の意味として
+ 誤っていると思われる。[W]のUnicodeの値は、JIS X 0213で別字に割り当てられ
+ ており整合性が悪い。\\
+(5) & [W] & [J]に従うと、JIS+CMapのHとUnicode+CMapのUniJIS-UTF16-Hで異なる結果
+ になってしまうが、[W]でも``FULLWIDTH''の差のみで文字の意味を変更していることにはならない。\\
+(6) & [J][W] & 下記。JIS→Unicodeの変換表には揺らぎがないが、CIDとの対応では互換性が無い。
+ 文字コード変換部分以外 (vf, CMapなど) に別途要対策。\\\hline
+\end{tabular}
+
+\parindent1zw
+
+結果的には、[J]でも[W]でもない変換表がupTeXにとっては好ましい。
+「変換表の乱立に拍車を掛ける」という批判もあるかもしれないので、
+副作用について考えてみる。
+upTeX(内部Unicode動作)でJIS→Unicodeの変換をした場合、
+再度Unicode→JISに変換することは、わずかな例外
+(端末への出力で、端末の環境がEUCなどJIS系であった場合)のみであり、
+ファイル出力などでUnicode→JIS変換が利用されることはない。
+JIS→Unicode→JISのラウンドトリップは保証されている。
+副作用があるとすれば、
+JIS→Unicodeの変換したファイル出力(logやauxなど)を、
+例えばWindowsで入出力がUTF-8だが内部がCP932で動作しているような
+ソフトで編集をすると、
+文字欠けなどの危険がある。
+しかし、そのようなケースは稀だと思われるし、
+考慮しなくていいだろう。
+JIS→Unicodeの変換が安定であることのメリットの方が
+大きいと判断する。
+
+\section{upTeXでのUnicode→CID変換}
+下記の例は、JIS→Unicodeの変換については疑義がなく明解だが、
+CIDとの対応を含めて考えると、
+「pTeXでは、min10.\{tfm,vf\}→rml.\{tfm,vf\}→CMapのH→dvipsまたは
+dvipdfmx出力」
+「upTeXでは、upjisr-h.\{tfm,vf\}→uprml-h.\{tfm,vf\}→CMapのUniJIS-UTF16-H→
+dvipsまたはdvipdfmx出力」
+という方針では対応できず、別途対策が必要。
+UniJIS-UTF16-Hの代わりにUniJIS-UCS2-HでOKという話ならAdobe標準CMapの切り替えで対応可能であるが。
+文字コード変換部分ではどうにもならないので、
+vfかCMapの機能を使わざるを得ない。
+現在、「upjisr-h.vf → JISコード\&rml.\{tfm,vf\} →CMapのH」の
+対応付けを行うコースを最有力と考えている。
+
+\parindent0mm
+\begin{tabular}{l@{~}l|l@{~}l@{~}|l@{~}c@{~}|l}\hline
+JIS & H, V & UCS2 & UniJIS-UTF16 & 実装例 & upTeX & 備考\\\hline
+\MKTx{2148}{1-1-40} & \CIDx{672}
+ & \UTFx{201C} & \CIDx{108} & [g][J][W][M] & (6) & LEFT DOUBLE QUOTATION MARK\\\cline{3-7}
+ & & 該当なし & \CIDx{672} & & & \\\hline\hline
+
+\MKTx{2149}{1-1-41} & \CIDx{673}
+ & \UTFx{201D} & \CIDx{122} & [g][J][M][W] & (6) & RIGHT DOUBLE QUOTATION MARK \\\cline{3-7}
+ & & 該当なし & \CIDx{673} & & & \\\hline
+\end{tabular}
+
+\end{document}